1. Termékek
  2.   3D
  3.   Ruby
  4.   Ray
 
  

Ruby könyvtár 3D grafikák létrehozásához és rendereléséhez & játékfejlesztés

Nyílt forráskódú Ruby 3D könyvtár 3D grafikák és jelenetek létrehozásához és rendereléséhez játékfejlesztésben, szimulációkban és robotikában, ingyenes Ruby API-n keresztül.

Mi az a Ray Library?

Ha Ruby fejlesztő vagy, aki szereti az elegáns DSL-eket és kedveli a terminál-alapú grafikákat, a Ray könyvtár egy nyílt forráskódú gem, amelyet érdemes megnézni. Mon-Ouie által létrehozott Ray egy domain-specifikus nyelvet (DSL) kínál gyönyörű ASCII és ANSI grafikák építéséhez közvetlenül a terminálodban. A nehezebb grafikai könyvtárakkal ellentétben a Ray az egyszerűséget és kifejezőképességet helyezi előtérbe, lehetővé téve, hogy minimális kóddal definiálj vizuális elemeket. A könyvtár támogatja mind a 2D, mind a 3D sugár műveleteket, így sokoldalú különböző típusú alkalmazásokhoz. Merüljünk el a könyvtár által kínált konkrét funkciókban. Támogatja az egyszerűsített játék/ablak beállítást (DSL), a jelenetek létrehozását és kezelését, gyakori 2D alakzatok és szöveg rajzolását, alapvető geometriai alakzatok létrehozását, vektormatematikai műveleteket, egyedi transzformációs mátrixok támogatását, off-screen renderelést és még sok mást.

Ray egy Ruby DSL a terminálgrafika rajzolásához, amely lehetővé teszi alakzatok, színek, színátmenetek és elrendezések definiálását deklaratív szintaxis segítségével. A lényeg, hogy a terminált vászonként kezeljük, és strukturált grafikai elemeket építsünk, amelyeket UI widgetekhez hasonlóan lehet összekapcsolni. Gondolj rá úgy, mint a HTML-re és a CSS-re a terminálodban. Kihasználja az ANSI escape kódokat és a Unicode karaktereket a komplex vizuális elemek megjelenítéséhez. A Ray Unicode karakterekkel és dobozrajzoló szimbólumokkal tud grafikát renderelni, amelyek elengedhetetlenek a tiszta és éles elrendezések létrehozásához terminál környezetben. A Ray egy elbűvölő, kis Ruby könyvtár, amely a minimalizmus és kifejezőkészség szellemét ragadja meg. Bár nem helyettesíti a teljes körű TUI (Terminal User Interface) keretrendszereket, mint a curses vagy tty, kiváló gyors elrendezés prototípusok készítésében, szép kimeneti formázásban, és szórakoztató, Ruby-idiomatikus módot biztosít a terminál vizuálok építéséhez.

Previous Next

Ray használatának megkezdése

A Ray stabil kiadásának legkönnyebb telepítési módja a RubyGem használata. Kérjük, használd a következő parancsot a zökkenőmentes telepítéshez.

Telepítsd a Ray-t RubyGem segítségével

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

Letöltheti az összeállított megosztott könyvtárat a Github tárolóból.

Alapvető Raycasting vizualizáció Ruby könyvtárral

A Ray Ruby könyvtár erőteljes 3D matematikát és raycasting képességeket hoz a Ruby fejlesztőknek egy elegáns csomagban. A raycasting elengedhetetlen a sugarak és objektumok közötti metszéspontok észleléséhez 2D vagy 3D térben. A Ray könyvtár egyszerű módot biztosít a sugarak kibocsátására és az ütközési adatok lekérésére. Íme egy nagyon hasznos példa, amely bemutatja, hogyan lehet alapvető raycasting vizualizációt végrehajtani a Ruby könyvtár használatával.

Hogyan végezzünk alapvető raycasting vizualizációt Ruby-val?

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

Tükröződés és törés számítások

Az nyílt forráskódú Ray könyvtár teljes támogatást nyújt a visszaverődés és törés számításokhoz Ruby alkalmazásokban. A könyvtár tartalmaz függvényeket a sugarak visszaverődésének és törésének kiszámításához, amelyek hasznosak a fényhatások, tükrök és optikai szimulációk számára. Íme egy egyszerű példa, amely bemutatja, hogy a szoftverfejlesztők hogyan számíthatják ki a sugarak visszaverődését a Ruby 3D könyvtár használatával.

Hogyan számítsuk ki a sugár visszaverődését Ruby könyvtár segítségével??

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

Igazítás és elhelyezés

A nyílt forráskódú 3D Ray könyvtár teljes támogatást nyújt a 2D és 3D elemek igazításához Ruby alkalmazásokban. Egyszerű módszereket kínál az elemek igazításához és pozicionálásához: az align, padding és margin metódusok fejlesztőknek irányítást adnak az elrendezés felett, hasonlóan a CSS dobozmodellekhez. Az alábbi egyszerű példa bemutatja, hogyan lehet több sort kapni, amelyek a vászon mindkét végén igazodnak Ruby parancsokkal.

Hogyan kapjunk több sort, amelyek a vászon mindkét végéhez igazodnak Ruby API segítségével?

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

  text "Right aligned" do
    align :right
  end
end

Dobozrajzolás Unicode keretekkel

A Ray 3D könyvtár megkönnyíti a szoftverfejlesztők számára, hogy Unicode rajzolással dobozokat készítsenek Ruby alkalmazásokban. A dobozok strukturáltabbá teszik a terminál kimenetet. A Ray Unicode dobozrajzoló karaktereket használ elegáns szegélyek létrehozásához. A box metódus a tartalmadat egy rendezett szegélybe csomagolja, olyan karakterekkel, mint ┌ ─ ┐ és └ ┘, ahogyan az alábbi kódpélda mutatja.

Hogyan csomagoljuk be a tartalmat egy rendezett keretbe szegéllyel Ruby könyvtár segítségével?

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