Ruby-bibliotek til at skabe & gengive 3D-grafik & spiludvikling
Open source Ruby 3D-bibliotek til at skabe og gengive 3D-grafik & scener i spiludvikling, simulationer og robotteknik via gratis Ruby API.
Hvad er Ray Library ?
Hvis du er en Ruby-udvikler med kærlighed til elegante DSL'er og en smag for terminalbaseret grafik, er Ray-biblioteket en open source-gem, der er værd at tjekke ud. Skabt af Mon-Ouie, tilbyder Ray et domænespecifikt sprog (DSL) til at bygge smuk ASCII- og ANSI-grafik direkte i din terminal. I modsætning til tungere grafikbiblioteker lægger Ray vægt på enkelhed og udtryksfuldhed, så du kan definere visuelle elementer med minimal kode. Biblioteket understøtter både 2D- og 3D-ray-operationer, hvilket gør det alsidigt til forskellige typer af applikationer. Lad os dykke ned i nogle af de specifikke funktioner, som biblioteket tilbyder. Det understøtter forenklet spil/vinduesopsætning (DSL), oprettelse og styring af scener, tegning af almindelige 2D-former og tekst, oprettelse af grundlæggende geometriske former, vektor-matematik, understøttelse af brugerdefinerede transformationsmatricer, off-screen rendering og så videre.
Ray er et Ruby-DSL til at tegne terminalgrafik, som giver dig mulighed for at definere former, farver, gradienter og layout ved hjælp af en deklarativ syntaks. Den grundlæggende idé er at betragte terminalen som et lærred og bygge strukturerede grafiske elementer, der kan sammensættes som UI-widgets. Tænk på det som HTML og CSS for din terminal. Det udnytter ANSI-escape-koder og Unicode-tegn til at gengive komplekse visuelle elementer. Ray kan gengive grafik ved hjælp af Unicode-tegn og box‑tegningssymboler, som er essentielle for at skabe skarpe og rene layout i terminalmiljøer. Ray er et dejligt lille Ruby-bibliotek, der indfanger minimalismens og udtryksfuldhedens ånd. Selvom det måske ikke erstatter fuldt udbyggede TUI‑ (Terminal User Interface) rammer som curses eller tty, udmærker det sig i hurtig layout‑prototyping, smuk output‑formatering og at tilbyde en sjov, Ruby‑idiomatisk måde at bygge terminal‑visuals på.
Kom i gang med Ray
Den nemmeste måde at installere den stabile version af Ray på er ved at bruge RubyGem. Brug venligst følgende kommando for en problemfri installation.
Installer Ray via RubyGem
gem 'ray', github: 'Mon-Ouie/ray' Du kan downloade det kompilerede delte bibliotek fra Github-arkivet.
Grundlæggende Raycasting-visualisering via Ruby-biblioteket
Ray Ruby-biblioteket bringer kraftfuld 3D-matematik og raycasting-funktioner til Ruby-udviklere i en elegant pakke. Raycasting er essentielt for at opdage krydsninger mellem stråler og objekter i et 2D- eller 3D-rum. Ray-biblioteket giver en enkel måde at kaste stråler på og hente kollisionsdata. Her er et meget nyttigt eksempel, der demonstrerer, hvordan man udfører grundlæggende raycasting-visualisering ved hjælp af Ruby-biblioteket.
Hvordan udfører man grundlæggende raycasting-visualisering ved hjælp af 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
Refleksions- og brydningsberegninger
Det open source Ray-bibliotek har leveret fuld support til beregning af refleksion og brydning i Ruby-applikationer. Biblioteket indeholder funktioner til at beregne ray-refleksioner og -brydninger, som er nyttige til lys‑effekter, spejle og optiske simuleringer. Her er et enkelt eksempel, der viser, hvordan softwareudviklere kan beregne ray-refleksion ved hjælp af Ruby 3D-biblioteket.
Hvordan beregner man ray-reflektion 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 og placering
Det open source 3D Ray-bibliotek har leveret fuldstændig support for justering af 2D- og 3D-elementer i Ruby-applikationer. Det tilbyder enkle metoder til at justere og placere elementer: align-, padding- og margin-metoder giver udviklere kontrol over layout, svarende til CSS-boksmodeller. Det følgende enkle eksempel viser, hvordan man får flere linjer, justeret til begge ender af lærredet ved hjælp af Ruby-kommandoer.
Hvordan får man flere linjer, justeret til begge ender af lærredet 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
Boks-tegning med Unicode-kanter
Ray 3D-biblioteket gør det nemt for softwareudviklere at tegne bokse med Unicode-tegning i Ruby-applikationer. Bokse gør din terminaloutput mere struktureret. Ray bruger Unicode-tegn til boks-tegning for at skabe elegante rammer. box-metoden omslutter dit indhold i en pæn ramme ved hjælp af tegn som ┌ ─ ┐ og └ ┘ som vist i det følgende kodeeksempel.
Hvordan pakker man indhold i en pæn boks med kant ved brug af Ruby-biblioteket?
Ray.draw(width: 50, height: 8) do
box do
text "Welcome to Ray UI!" do
align :center
end
end
end