1. Prodotti
  2.   3D
  3.   Ruby
  4.   Ray
 
  

Libreria Ruby per creare e renderizzare grafica 3D e sviluppo di giochi

Libreria Ruby 3D open source per creare e renderizzare grafica e scene 3D nello sviluppo di giochi, simulazioni e robotica tramite API Ruby gratuita.

Che cos'è la libreria Ray ?

Se sei uno sviluppatore Ruby con una passione per i DSL eleganti e un gusto per la grafica basata sul terminale, la libreria Ray è un gem open source che vale la pena provare. Creata da Mon-Ouie, Ray offre un linguaggio specifico di dominio (DSL) per creare bellissime grafiche ASCII e ANSI direttamente nel tuo terminale. A differenza delle librerie grafiche più pesanti, Ray enfatizza semplicità ed espressività, permettendoti di definire visualizzazioni con un codice minimo. La libreria supporta sia operazioni di ray 2D che 3D, rendendola versatile per diversi tipi di applicazioni. Approfondiamo alcune delle funzionalità specifiche offerte dalla libreria. Supporta la configurazione semplificata di Game/Window (DSL), la creazione e gestione di scene, il disegno di forme 2D comuni e testo, la creazione di forme geometriche di base, la creazione di matematica vettoriale, il supporto a matrici di trasformazione personalizzate, il supporto al rendering fuori schermo e così via.

Ray è un DSL Ruby per disegnare grafica nel terminale, che consente di definire forme, colori, gradienti e layout usando una sintassi dichiarativa. L'idea principale è trattare il terminale come una tela e costruire elementi grafici strutturati che possono essere composti come widget UI. Pensalo come HTML e CSS per il tuo terminale. Sfrutta i codici di escape ANSI e i caratteri Unicode per renderizzare visualizzazioni complesse. Ray può renderizzare grafica usando caratteri Unicode e simboli di disegno di box, fondamentali per creare layout nitidi e puliti negli ambienti terminale. Ray è una piccola e deliziosa libreria Ruby che cattura lo spirito di minimalismo ed espressività. Sebbene non sostituisca framework TUI completi come curses o tty, eccelle nella prototipazione rapida di layout, nella formattazione elegante dell'output e nel fornire un modo divertente e idiomatico Ruby per costruire visualizzazioni nel terminale.

Previous Next

Iniziare con Ray

Il modo più semplice per installare la versione stabile di Ray è utilizzare RubyGem. Per favore usa il comando seguente per un'installazione senza problemi.

Installa Ray via RubyGem

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

Puoi scaricare la libreria condivisa compilata dal repository Github.

Visualizzazione di base del raycasting tramite la libreria Ruby

La libreria Ray per Ruby offre potenti capacità di matematica 3D e raycasting agli sviluppatori Ruby in un pacchetto elegante. Il raycasting è essenziale per rilevare le intersezioni tra raggi e oggetti in uno spazio 2D o 3D. La libreria Ray fornisce un modo semplice per lanciare raggi e recuperare i dati di collisione. Ecco un esempio molto utile che dimostra come eseguire una visualizzazione di base del raycasting usando la libreria Ruby.

Come eseguire una visualizzazione di base del raycasting usando Ruby?

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

Calcoli di riflessione e rifrazione

La libreria open source Ray ha fornito un supporto completo per i calcoli di riflessione e rifrazione all'interno delle applicazioni Ruby. La libreria include funzioni per calcolare le riflessioni e le rifrazioni dei raggi, utili per effetti di illuminazione, specchi e simulazioni ottiche. Ecco un semplice esempio che dimostra come gli sviluppatori software possano calcolare la riflessione dei raggi usando la libreria 3D per Ruby.

Come calcolare il riflesso dei raggi tramite la libreria Ruby??

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

Allineamento e posizionamento

La libreria open source 3D Ray ha fornito supporto completo per l'allineamento di elementi 2D e 3D all'interno delle applicazioni Ruby. Offre metodi semplici per allineare e posizionare gli elementi: i metodi align, padding e margin danno agli sviluppatori il controllo sul layout, simile ai modelli di box CSS. Il semplice esempio seguente mostra come ottenere più righe, allineate a entrambe le estremità della tela usando comandi Ruby.

Come ottenere più linee, allineate a entrambe le estremità della tela tramite l'API Ruby?

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

  text "Right aligned" do
    align :right
  end
end

Disegno di riquadri con bordi Unicode

La libreria Ray 3D semplifica per gli sviluppatori software il disegno di Box con caratteri Unicode all'interno delle applicazioni Ruby. I Box rendono l'output del terminale più strutturato. Ray utilizza caratteri Unicode per il disegno di box per creare bordi eleganti. Il metodo box avvolge il tuo contenuto in un bordo ordinato usando caratteri come ┌ ─ ┐ e └ ┘ come mostrato nel seguente esempio di codice.

Come avvolgere il contenuto in una scatola ordinata con bordo usando la libreria Ruby?

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