Ruby-bibliotek för att skapa och rendera 3D-grafik & spelutveckling
Öppen källkod Ruby 3D-bibliotek för att skapa och rendera 3D-grafik & scener i spelutveckling, simuleringar och robotik via gratis Ruby API.
Vad är Ray Library?
Om du är en Ruby‑utvecklare med kärlek för eleganta DSL:er och ett intresse för terminalbaserad grafik, är Ray‑biblioteket ett open‑source‑gem som är värt att kolla in. Skapat av Mon‑Ouie, erbjuder Ray ett domänspecifikt språk (DSL) för att bygga vackra ASCII‑ och ANSI‑grafiker direkt i din terminal. Till skillnad från tyngre grafikbibliotek betonar Ray enkelhet och uttrycksfullhet, vilket låter dig definiera visuella element med minimal kod. Biblioteket stödjer både 2D‑ och 3D‑strålningsoperationer, vilket gör det mångsidigt för olika typer av applikationer. Låt oss dyka ner i några av de specifika funktionerna som erbjuds av biblioteket. Det stödjer förenklad spel-/fönsterinställning (DSL), skapa och hantera scener, rita vanliga 2D‑former och text, skapa grundläggande geometriska former, vektor‑matematik, stöd för anpassade transformationsmatriser, off‑screen‑rendering med mera.
Ray är ett Ruby-DSL för att rita terminalgrafik, som låter dig definiera former, färger, gradienter och layouter med en deklarativ syntax. Kärnidén är att behandla terminalen som en canvas och bygga strukturerade grafiska element som kan komponeras som UI‑widgets. Tänk på det som HTML och CSS för din terminal. Det utnyttjar ANSI‑escape‑koder och Unicode‑tecken för att rendera komplexa visuella element. Ray kan rendera grafik med Unicode‑tecken och box‑drawing‑symboler, vilka är avgörande för att skapa skarpa och rena layouter i terminalmiljöer. Ray är ett förtjusande litet Ruby‑bibliotek som fångar minimalismens och uttrycksfullhetens anda. Även om det kanske inte ersätter fullskaliga TUI‑ramverk (Terminal User Interface) som curses eller tty, briljerar det i snabb layout‑prototypning, vacker utdata‑formatering och att erbjuda ett roligt, Ruby‑idiomatiskt sätt att bygga terminalvisualiseringar.
Komma igång med Ray
Det enklaste sättet att installera den stabila versionen av Ray är att använda RubyGem. Använd följande kommando för en smidig installation.
Installera Ray via RubyGem
gem 'ray', github: 'Mon-Ouie/ray' Du kan ladda ner det kompilerade delade biblioteket från Github-arkivet.
Grundläggande Raycasting-visualisering via Ruby-biblioteket
Ray Ruby-biblioteket ger kraftfulla 3D-matematik- och raycasting-funktioner till Ruby-utvecklare i ett elegant paket. Raycasting är avgörande för att upptäcka skärningspunkter mellan strålar och objekt i ett 2D- eller 3D-utrymme. Ray-biblioteket erbjuder ett enkelt sätt att kasta strålar och hämta kollisionsdata. Här är ett mycket användbart exempel som visar hur man utför grundläggande raycasting-visualisering med Ruby-biblioteket.
Hur utför man grundläggande raycasting-visualisering med 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
Beräkningar av reflektion och refraktion
Det öppna källkods‑Ray‑biblioteket har gett fullständigt stöd för beräkningar av reflektion och refraktion i Ruby‑applikationer. Biblioteket innehåller funktioner för att beräkna stråle‑reflektioner och -refraktioner, vilket är användbart för ljuseffekter, speglar och optiska simuleringar. Här är ett enkelt exempel som visar hur mjukvaruutvecklare kan beräkna stråle‑reflektion med Ruby 3D‑biblioteket.
Hur beräknar man strålningsreflektion via Ruby-biblioteket??
# 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}"
Justering och positionering
Det öppna källkods‑biblioteket 3D Ray har gett fullständigt stöd för justering av 2D‑ och 3D‑element i Ruby‑applikationer. Det erbjuder enkla metoder för att justera och placera element: align-, padding‑ och margin‑metoder ger utvecklare kontroll över layout, liknande CSS‑boxmodeller. Följande enkla exempel visar hur man får flera rader, justerade mot båda kanterna av canvasen med Ruby‑kommandon.
Hur får man flera rader, justerade till båda kanterna av canvasen via Ruby API?
Ray.draw(width: 40, height: 10) do
text "Left aligned" do
align :left
end
text "Right aligned" do
align :right
end
end
Ritning av lådor med Unicode-kanter
Ray 3D‑biblioteket gör det enkelt för mjukvaruutvecklare att rita lådor med Unicode‑teckning i Ruby‑applikationer. Lådor gör din terminalutmatning mer strukturerad. Ray använder Unicode‑tecken för lådritning för att skapa eleganta ramar. box‑metoden omsluter ditt innehåll i en snygg ram med tecken som ┌ ─ ┐ och └ ┘ som visas i följande kodexempel.
Hur omsluter man innehåll i en prydlig ruta med kantlinje med Ruby-biblioteket?
Ray.draw(width: 50, height: 8) do
box do
text "Welcome to Ray UI!" do
align :center
end
end
end