Ruby Kütüphanesi 3D Grafikler Oluşturmak ve Renderlamak & Oyun Geliştirme İçin

Oyun Geliştirme, Simülasyonlar ve Robotik'te 3D Grafikler ve Sahneler Oluşturmak ve Renderlamak için Ücretsiz Ruby API aracılığıyla Açık Kaynak Ruby 3D Kütüphanesi.

Ray Kütüphanesi nedir?

Eğer şık DSL'lere ve terminal tabanlı grafiklere ilgi duyan bir Ruby geliştiricisiyseniz, Ray kütüphanesi kontrol etmeniz gereken açık kaynaklı bir gem'dir. Mon-Ouie tarafından oluşturulan Ray, terminalinizde güzel ASCII ve ANSI grafikler oluşturmak için bir alan‑spesifik dil (DSL) sunar. Daha ağır grafik kütüphanelerinin aksine, Ray basitlik ve ifade gücüne odaklanır, görselleri minimal kodla tanımlamanıza olanak tanır. Kütüphane hem 2D hem de 3D ışın işlemlerini destekler, bu da farklı uygulama türleri için çok yönlü olmasını sağlar. Şimdi kütüphanenin sunduğu bazı özel özelliklere göz atalım. Basitleştirilmiş Oyun/Pencere kurulumu (DSL), sahneler oluşturma ve yönetme, yaygın 2D şekiller ve metin çizme, temel geometrik şekiller oluşturma, vektör Matematiği oluşturma, özel dönüşüm matrisleri desteği, ekran dışı render desteği ve daha fazlasını destekler.

Ray, terminal grafiklerini çizmeye yönelik bir Ruby DSL'idir; şekilleri, renkleri, degradeleri ve düzenleri deklaratif bir sözdizimiyle tanımlamanıza olanak tanır. Temel fikir, terminali bir tuval gibi ele alıp, UI widget'ları gibi birleştirilebilen yapılandırılmış grafik öğeleri oluşturmaktır. Bunu terminaliniz için HTML ve CSS gibi düşünün. ANSI kaçış kodları ve Unicode karakterlerinden yararlanarak karmaşık görselleri render eder. Ray, Unicode karakterleri ve kutu-çizim sembolleri kullanarak grafik render edebilir; bu, terminal ortamlarında keskin ve temiz düzenler oluşturmak için gereklidir. Ray, minimalizm ve ifade gücünün ruhunu yakalayan keyifli bir Ruby kütüphanesidir. curses veya tty gibi tam kapsamlı TUI (Terminal Kullanıcı Arayüzü) çerçevelerinin yerini almasa da, hızlı düzen prototipleme, güzel çıktı biçimlendirme ve terminal görselleri oluşturmak için eğlenceli, Ruby-idiomatik bir yol sunmada üstünlük sağlar.

Previous Next

Ray ile Başlarken

Ray'in kararlı sürümünü kurmanın en kolay yolu RubyGem kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.

Ray'i RubyGem aracılığıyla kurun

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

Derlenmiş paylaşımlı kütüphaneyi Github deposundan indirebilirsiniz.

Ruby Kütüphanesi ile Temel Raycasting Görselleştirmesi

Ray Ruby kütüphanesi, Ruby geliştiricilerine güçlü 3D matematik ve ışın izleme yeteneklerini şık bir paket içinde sunar. Işın izleme, ışınlar ile nesneler arasındaki kesişimleri 2D veya 3D bir alanda tespit etmek için esastır. Ray kütüphanesi, ışınları atmanın ve çarpışma verilerini almanın basit bir yolunu sağlar. İşte Ruby kütüphanesini kullanarak temel ışın izleme görselleştirmesini nasıl yapacağınızı gösteren çok faydalı bir örnek.

Ruby kullanarak Temel Raycasting Görselleştirmesi Nasıl Yapılır?

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

Yansıma ve Kırılma Hesaplamaları

Açık kaynaklı Ray kütüphanesi, Ruby uygulamaları içinde yansıma ve kırılma hesaplamaları için tam destek sağlamıştır. Kütüphane, ışık efektleri, aynalar ve optik simülasyonlar için faydalı olan ışın yansımaları ve kırılmalarını hesaplayan fonksiyonlar içerir. İşte Ruby 3D kütüphanesini kullanarak ışın yansımasını hesaplayabilen yazılım geliştiricilerine yönelik basit bir örnek.

Ruby Kütüphanesi ile Işın Yansıması Nasıl Hesaplanır??

# 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}"

Hizalama ve Konumlandırma

Açık kaynak 3D Ray kütüphanesi, Ruby uygulamaları içinde 2D ve 3D öğe hizalamaları için tam destek sağlamıştır. Öğeleri hizalamak ve konumlandırmak için basit yöntemler sunar: align, padding ve margin yöntemleri, geliştiricilere CSS kutu modellerine benzer şekilde düzen üzerinde kontrol sağlar. Aşağıdaki basit örnek, Ruby komutları kullanarak birden fazla satırı, tuvalin her iki ucuna hizalamanın nasıl yapılacağını gösterir.

Ruby API'si ile Çizim Alanının Her İki Ucuna Hizalanmış Çoklu Satırlar Nasıl Alınır?

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

  text "Right aligned" do
    align :right
  end
end

Unicode Kenarlıklarla Kutu Çizimi

Ray 3D kütüphanesi, yazılım geliştiricilerin Ruby uygulamaları içinde Unicode çizimle Kutular çizmelerini kolaylaştırır. Kutular, terminal çıktınızı daha yapılandırılmış hâle getirir. Ray, şık kenarlıklar oluşturmak için Unicode kutu-çizim karakterlerini kullanır. box yöntemi, aşağıdaki kod örneğinde gösterildiği gibi ┌ ─ ┐ ve └ ┘ gibi karakterler kullanarak içeriğinizi düzenli bir kenarlıkla sarar.

Ruby Kütüphanesi kullanarak İçeriği Kenarlıklı Şık Bir Kutunun İçine Nasıl Sarmalarsınız?

Ray.draw(width: 50, height: 8) do
  box do
    text "Welcome to Ray UI!" do
      align :center
    end
  end
end
 Türkçe