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

Ruby knihovna pro tvorbu a vykreslování 3D grafiky a vývoj her

Open source Ruby 3D knihovna pro tvorbu a vykreslování 3D grafiky a scén ve vývoji her, simulacích a robotice pomocí bezplatného Ruby API.

Co je knihovna Ray?

Pokud jste vývojář Ruby s láskou k elegantním DSL a chutí k terminálové grafice, knihovna Ray je open‑source gem, který stojí za vyzkoušení. Vytvořil ji Mon‑Ouie a Ray nabízí doménově specifický jazyk (DSL) pro tvorbu krásné ASCII a ANSI grafiky přímo ve vašem terminálu. Na rozdíl od těžších grafických knihoven klade Ray důraz na jednoduchost a expresivitu, což vám umožní definovat vizuály s minimálním množstvím kódu. Knihovna podporuje jak 2D, tak 3D operace s paprsky, což ji činí univerzální pro různé typy aplikací. Ponořme se do některých konkrétních funkcí, které knihovna nabízí. Podporuje zjednodušené nastavení hry/okna (DSL), vytváření a správu scén, kreslení běžných 2D tvarů a textu, tvorbu základních geometrických tvarů, vytváření vektorové matematiky, podporu vlastních transformačních matic, podporu vykreslování mimo obrazovku a další.

Ray je Ruby DSL pro kreslení grafiky v terminálu, umožňující definovat tvary, barvy, gradienty a rozvržení pomocí deklarativní syntaxe. Hlavní myšlenkou je považovat terminál za plátno a vytvářet strukturované grafické elementy, které lze skládat jako UI widgety. Představte si to jako HTML a CSS pro váš terminál. Využívá ANSI escape kódy a Unicode znaky k vykreslení složitých vizuálů. Ray může vykreslovat grafiku pomocí Unicode znaků a symbolů pro kreslení rámečků, které jsou nezbytné pro vytváření ostrých a čistých rozvržení v terminálových prostředích. Ray je půvabná malá Ruby knihovna, která zachycuje ducha minimalismu a expresivity. I když nenahrazuje plnohodnotné TUI (Terminal User Interface) frameworky jako curses nebo tty, vyniká v rychlém prototypování rozvržení, krásném formátování výstupu a poskytuje zábavný, Ruby-idiomatický způsob, jak vytvářet terminálové vizuály.

Previous Next

Začínáme s Ray

Nejjednodušší způsob, jak nainstalovat stabilní verzi Ray, je pomocí RubyGem. Použijte prosím následující příkaz pro hladkou instalaci.

Nainstalujte Ray pomocí RubyGem

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

Kompilovanou sdílenou knihovnu si můžete stáhnout z repozitáře Github.

Základní vizualizace raycastingu pomocí Ruby knihovny

Knihovna Ray pro Ruby přináší výkonnou 3D matematiku a schopnosti raycastingu vývojářům Ruby v elegantním balíčku. Raycasting je nezbytný pro detekci průniků mezi paprsky a objekty ve 2D nebo 3D prostoru. Knihovna Ray poskytuje jednoduchý způsob, jak vysílat paprsky a získávat data o kolizích. Zde je velmi užitečný příklad, který ukazuje, jak provést základní vizualizaci raycastingu pomocí Ruby knihovny.

Jak provést základní vizualizaci raycastingu pomocí 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

Výpočty odrazu a lomu

Open source knihovna Ray poskytuje kompletní podporu výpočtů odrazů a lomu paprsků v Ruby aplikacích. Knihovna obsahuje funkce pro výpočet odrazů a lomu paprsků, které jsou užitečné pro světelné efekty, zrcadla a optické simulace. Zde je jednoduchý příklad, který ukazuje, jak mohou vývojáři softwaru vypočítat odraz paprsku pomocí Ruby 3D knihovny.

Jak vypočítat odraz paprsku pomocí Ruby knihovny??

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

Zarovnání a umístění

Open source 3D Ray knihovna poskytla úplnou podporu pro zarovnání 2D a 3D prvků uvnitř Ruby aplikací. Nabízí jednoduché metody pro zarovnání a umístění prvků: metody align, padding a margin dávají vývojářům kontrolu nad rozvržením, podobně jako CSS box modely. Následující jednoduchý příklad ukazuje, jak získat více řádků zarovnaných na oba konce plátna pomocí Ruby příkazů.

Jak získat více řádků zarovnaných na oba konce plátna pomocí Ruby API?

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

  text "Right aligned" do
    align :right
  end
end

Kreslení rámečků pomocí Unicode ohraničení

Ray 3D knihovna usnadňuje vývojářům softwaru kreslit Boxy s Unicode kresbou uvnitř Ruby aplikací. Boxy činí výstup vašeho terminálu strukturovanějším. Ray používá Unicode znaky pro kreslení rámečků k vytvoření elegantních ohraničení. Metoda box obalí váš obsah do úhledného rámečku pomocí znaků jako ┌ ─ ┐ a └ ┘, jak je ukázáno v následujícím příkladu kódu.

Jak zabalit obsah do úhledného rámečku s okrajem pomocí Ruby knihovny?

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