1. Məhsullar
  2.   3D
  3.   Ruby
  4.   Ray
 
  

Ruby Kitabxanası Yaratmaq & Renderləmək 3D Qrafikləri & Oyun İnkişafı

Oyun inkişafı, simulasiya və robotikada 3D Qrafikləri və Səhnələri Yaratmaq və Renderləmək üçün Açıq Mənbəli Ruby 3D Kitabxanası, Pulsuz Ruby API vasitəsilə.

Ray Kitabxanası nədir?

Eğer siz elegant DSL-lərə sevgi duyan və terminal əsaslı qrafiklərdən zövq alan Ruby inkişafçısıysanız, Ray kitabxanası yoxlamağa dəyər açıq mənbəli gem-dir. Mon-Ouie tərəfindən yaradılmış Ray, terminalınızda gözəl ASCII və ANSI qrafikləri qurmaq üçün domen-özəl dil (DSL) təklif edir. Daha ağır qrafik kitabxanalarından fərqli olaraq, Ray sadəliyə və ifadə gücünə önəm verir, vizualları minimal kodla təyin etməyə imkan verir. Kitabxana həm 2D, həm də 3D ray əməliyyatlarını dəstəkləyir, bu da müxtəlif tətbiq növləri üçün çox yönlü edir. Gəlin kitabxananın təklif etdiyi bəzi xüsusi xüsusiyyətlərə nəzər salaq. O, sadələşdirilmiş Game/Window quruluşunu (DSL), səhnələrin yaradılması və idarə olunmasını, ümumi 2D formaların və mətnin çəkilməsini, əsas həndəsi formaların yaradılmasını, vektor riyaziyyatı yaratma, xüsusi transformasiya matrislərinin dəstəyi, ekran kənarı renderləmə dəstəyi və s. dəstəkləyir.

Ray, terminal qrafiklərini çəkmək üçün Ruby DSL-dir, sizə formalar, rənglər, gradientlər və layoutları deklarativ sintaksisdən istifadə edərək təyin etməyə imkan verir. Əsas fikir terminalı bir kətan kimi qəbul etmək və UI vidcetləri kimi birləşdirilə bilən strukturlaşdırılmış qrafik elementləri yaratmaqdır. Bunu terminalınız üçün HTML və CSS kimi düşünün. O, ANSI escape kodları və Unicode simvollarından istifadə edərək mürəkkəb vizuallar yaradır. Ray, Unicode simvolları və qutu-çəkiliş simvolları ilə qrafikləri render edə bilir, bu da terminal mühitində dəqiq və təmiz layoutlar yaratmaq üçün vacibdir. Ray, minimalizm və ifadəçiliyin ruhunu tutan xoş bir Ruby kitabxanasıdır. O, curses və ya tty kimi tam TUI (Terminal İstifadəçi İnterfeysi) çərçivələrini əvəz etməsə də, sürətli layout prototipləşdirmə, gözəl çıxış formatlaşdırması və terminal vizuallarını qurmaq üçün əyləncəli, Ruby‑idiomatik bir yol təqdim edir.

Previous Next

Ray ilə Başlanğıc

Ray stabil buraxılışını quraşdırmağın ən asan yolu RubyGem istifadə etməkdir. Zəhmət olmasa, problemsiz quraşdırma üçün aşağıdakı əmri istifadə edin.

Ray kitabxanasını RubyGem vasitəsilə quraşdırın

gem 'ray', github: 'Mon-Ouie/ray' 

Siz tərtib olunmuş paylaşılan kitabxananı Github deposundan yükləyə bilərsiniz.

Ruby Kitabxanası vasitəsilə Əsas Raycasting Vizualizasiyası

Ray Ruby kitabxanası güclü 3D riyaziyyat və raykasting imkanlarını Ruby inkişaf etdiricilərinə zərif bir paketdə təqdim edir. Raykasting, şüaların və obyektlərin 2D və ya 3D məkanında kəsişmələri aşkar etmək üçün vacibdir. Ray kitabxanası şüaları atmaq və toqquşma məlumatlarını əldə etmək üçün sadə bir yol təqdim edir. Budur, Ruby kitabxanasından istifadə edərək əsas raykasting vizuallaşdırmasını necə həyata keçirmək lazım olduğunu göstərən çox faydalı bir nümunə.

Ruby istifadə edərək əsas Raycasting vizualizasiyasını necə həyata keçirmək olar?

require 'ray'
require 'ruby2d'

# Set up 2D window
set title: "Raycasting Demo", width: 800, height: 600

# Create a ray from center pointing at mouse
ray = Ray::Ray.new(origin: [400, 300], direction: [1, 0])

# Target circle
target = Circle.new(x: 500, y: 300, radius: 30, color: 'red')

update do
  # Update ray direction toward mouse
  ray.direction = [Window.mouse_x - 400, Window.mouse_y - 300].normalize

  # Check intersection
  if ray.intersect_circle(target.position, target.radius)
    target.color = 'lime'
  else
    target.color = 'red'
  end
end

show

Əks etdirilmə və qırılma hesablamaları

Açıq mənbəli Ray kitabxanası Ruby tətbiqlərində əks etdirilmə və qırılma hesablamaları üçün tam dəstək təmin edir. Kitabxana şüa əks etdirilmələri və qırılmaları hesablamaq üçün funksiyalar ehtiva edir, bu da işıqlandırma effektləri, güzgülər və optik simulyasiyalar üçün faydalıdır. Budur, proqram təminatı inkişaf etdiricilərinin Ruby 3D kitabxanasından istifadə edərək şüa əks etdirilməsini hesablaya biləcəklərini göstərən sadə bir nümunə.

Ruby kitabxanası vasitəsilə Ray əks olunmasını necə hesablamaq olar??

# Incident ray (light direction)
incident = Ray::Vector[1, -1, 0].normalize

# Surface normal
normal = [0, 1, 0]

# Calculate reflection
reflected = incident.reflect(normal)
puts "Reflected direction: #{reflected}"

Yerləşdirmə və Mövqe

Açıq mənbəli 3D Ray kitabxanası Ruby tətbiqlərində 2D və 3D elementlərin düzülüşü üçün tam dəstək təmin edir. O, elementləri düzləşdirmək və yerləşdirmək üçün sadə metodlar təklif edir: align, padding və margin metodları tərtibatçılara layout üzərində nəzarət imkanı verir, CSS qutu modellərinə bənzər şəkildə. Aşağıdakı sadə nümunə Ruby əmrləri ilə kanvasın hər iki tərəfinə düzülmüş bir neçə sətiri necə əldə etmək olduğunu göstərir.

Ruby API vasitəsilə kanvasın hər iki ucuna hizalanmış bir neçə sətiri necə əldə etmək olar?

Ray.draw(width: 40, height: 10) do
  text "Left aligned" do
    align :left
  end

  text "Right aligned" do
    align :right
  end
end

Unicode Sərhədləri ilə Qutu Çəkilməsi

Ray 3D kitabxanası proqram inkişaf etdiricilərinə Ruby tətbiqlərində Unicode çəkmə ilə Qutular çəkməyi asanlaşdırır. Qutular terminal çıxışınızı daha strukturlaşdırılmış edir. Ray, zərif sərhədlər yaratmaq üçün Unicode qutu-çəkiliş simvollarından istifadə edir. Box metodu məzmununuzu ┌ ─ ┐ və └ ┘ kimi simvollarla nizamlı bir sərhəd içərisinə bürüyür, aşağıdakı kod nümunəsində göstərildiyi kimi.

Ruby kitabxanası ilə məzmunu sərhədlə təmiz bir qutuya necə bükmək olar?

Ray.draw(width: 50, height: 8) do
  box do
    text "Welcome to Ray UI!" do
      align :center
    end
  end
end
 Azəri