Biblioteka Ruby do tworzenia i renderowania grafiki 3D oraz tworzenia gier
Otwarta biblioteka Ruby 3D do tworzenia i renderowania grafiki 3D oraz scen w tworzeniu gier, symulacjach i robotyce przy użyciu darmowego API Ruby.
Czym jest biblioteka Ray?
Jeśli jesteś programistą Ruby, który kocha eleganckie DSL‑y i ma zamiłowanie do grafiki w terminalu, biblioteka Ray jest otwartym gemem, który warto sprawdzić. Stworzona przez Mon‑Ouie, Ray oferuje język specyficzny dla dziedziny (DSL) do tworzenia pięknych grafik ASCII i ANSI bezpośrednio w terminalu. W przeciwieństwie do cięższych bibliotek graficznych, Ray kładzie nacisk na prostotę i ekspresję, pozwalając definiować wizualizacje przy minimalnym kodzie. Biblioteka obsługuje zarówno operacje ray w 2D, jak i 3D, co czyni ją wszechstronną dla różnych typów aplikacji. Zanurzmy się w niektóre z konkretnych funkcji oferowanych przez bibliotekę. Obsługuje uproszczoną konfigurację gry/okna (DSL), tworzenie i zarządzanie scenami, rysowanie typowych kształtów 2D i tekstu, tworzenie podstawowych kształtów geometrycznych, tworzenie wektorowej matematyki, obsługę własnych macierzy transformacji, renderowanie poza ekranem i wiele innych.
Ray to DSL w Ruby do rysowania grafiki w terminalu, pozwalający definiować kształty, kolory, gradienty i układy przy użyciu deklaratywnej składni. Główną ideą jest traktowanie terminala jako płótna i budowanie strukturalnych elementów graficznych, które można komponować jak widżety UI. Pomyśl o tym jak o HTML i CSS dla swojego terminala. Wykorzystuje kody escape ANSI oraz znaki Unicode do renderowania złożonych wizualizacji. Ray może renderować grafikę przy użyciu znaków Unicode i symboli rysowania ramek, które są niezbędne do tworzenia ostrych i czystych układów w środowiskach terminalowych. Ray to urocza mała biblioteka Ruby, która uchwyca ducha minimalizmu i ekspresyjności. Choć nie zastąpi pełnoprawnych frameworków TUI (Terminal User Interface) takich jak curses czy tty, wyróżnia się szybkim prototypowaniem układów, pięknym formatowaniem wyjścia oraz zapewnia zabawny, idiomatyczny dla Ruby sposób tworzenia wizualizacji w terminalu.
Rozpoczęcie pracy z Ray
Najłatwiejszy sposób zainstalowania stabilnej wersji Ray to użycie RubyGem. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
Zainstaluj Ray za pomocą RubyGem
gem 'ray', github: 'Mon-Ouie/ray' Możesz pobrać skompilowaną bibliotekę współdzieloną z repozytorium Github.
Podstawowa wizualizacja raycastingu przy użyciu biblioteki Ruby
Biblioteka Ray Ruby dostarcza potężną matematykę 3D i możliwości raycastingu dla programistów Ruby w eleganckim pakiecie. Raycasting jest niezbędny do wykrywania przecięć promieni z obiektami w przestrzeni 2D lub 3D. Biblioteka Ray zapewnia prosty sposób na rzucanie promieni i pobieranie danych kolizji. Oto bardzo przydatny przykład, który demonstruje, jak wykonać podstawową wizualizację raycastingu przy użyciu biblioteki Ruby.
Jak wykonać podstawową wizualizację raycastingu przy użyciu 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
Obliczenia odbicia i załamania
Otwartoźródłowa biblioteka Ray zapewnia pełne wsparcie dla obliczeń odbić i załamań promieni w aplikacjach Ruby. Biblioteka zawiera funkcje służące do obliczania odbić i załamań promieni, które są przydatne w efektach oświetleniowych, lustrach i symulacjach optycznych. Oto prosty przykład, który pokazuje, jak programiści mogą obliczać odbicie promienia przy użyciu biblioteki Ruby 3D.
Jak obliczyć odbicie promienia za pomocą biblioteki 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}"
Wyrównanie i pozycjonowanie
Biblioteka open source 3D Ray zapewnia pełne wsparcie dla wyrównywania elementów 2D i 3D w aplikacjach Ruby. Oferuje proste metody do wyrównywania i pozycjonowania elementów: metody align, padding i margin dają programistom kontrolę nad układem, podobnie jak modele pudełkowe CSS. Poniższy prosty przykład pokazuje, jak uzyskać wiele linii wyrównanych do obu końców płótna przy użyciu poleceń Ruby.
Jak uzyskać wiele linii, wyrównanych po obu końcach płótna za pomocą API Ruby?
Ray.draw(width: 40, height: 10) do
text "Left aligned" do
align :left
end
text "Right aligned" do
align :right
end
end
Rysowanie ramek przy użyciu znaków Unicode
Biblioteka Ray 3D ułatwia programistom tworzenie pudełek przy użyciu rysunków Unicode w aplikacjach Ruby. Pudełka sprawiają, że wyjście terminala jest bardziej uporządkowane. Ray wykorzystuje znaki Unicode do rysowania ramek, aby tworzyć eleganckie obramowania. Metoda box otacza Twoją treść schludną ramką, używając znaków takich jak ┌ ─ ┐ i └ ┘, jak pokazano w poniższym przykładzie kodu.
Jak owinąć zawartość w schludne pole z obramowaniem przy użyciu biblioteki Ruby?
Ray.draw(width: 50, height: 8) do
box do
text "Welcome to Ray UI!" do
align :center
end
end
end