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

Ruby-Bibliothek zum Erstellen & Rendern von 3D-Grafiken & Spielentwicklung

Open-Source Ruby 3D-Bibliothek zum Erstellen und Rendern von 3D-Grafiken & Szenen in der Spielentwicklung, Simulationen und Robotik über die kostenlose Ruby-API.

Was ist die Ray-Bibliothek?

Wenn Sie ein Ruby‑Entwickler sind, der elegante DSLs liebt und ein Faible für terminalbasierte Grafiken hat, ist die Ray‑Bibliothek ein Open‑Source‑Gem, das Sie sich ansehen sollten. Von Mon‑Ouie erstellt, bietet Ray eine domänenspezifische Sprache (DSL) zum Erstellen schöner ASCII‑ und ANSI‑Grafiken direkt in Ihrem Terminal. Im Gegensatz zu schwereren Grafikbibliotheken legt Ray Wert auf Einfachheit und Ausdruckskraft, sodass Sie Visualisierungen mit minimalem Code definieren können. Die Bibliothek unterstützt sowohl 2D‑ als auch 3D‑Strahloperationen und ist damit vielseitig für verschiedene Anwendungstypen. Lassen Sie uns einige der spezifischen Funktionen der Bibliothek genauer betrachten. Sie unterstützt ein vereinfachtes Spiel/Fenster‑Setup (DSL), das Erstellen und Verwalten von Szenen, das Zeichnen gängiger 2D‑Formen und Text, das Erzeugen grundlegender geometrischer Formen, die Erstellung von Vektor‑Mathematik, Unterstützung benutzerdefinierter Transformationsmatrizen, Off‑Screen‑Rendering und vieles mehr.

Ray ist ein Ruby-DSL zum Zeichnen von Terminalgrafiken, das es Ihnen ermöglicht, Formen, Farben, Verläufe und Layouts mit einer deklarativen Syntax zu definieren. Die Kernidee besteht darin, das Terminal als Leinwand zu behandeln und strukturierte grafische Elemente zu erstellen, die wie UI-Widgets zusammengesetzt werden können. Denken Sie daran wie an HTML und CSS für Ihr Terminal. Es nutzt ANSI-Escape-Codes und Unicode-Zeichen, um komplexe Visualisierungen darzustellen. Ray kann Grafiken mit Unicode-Zeichen und Box‑Drawing‑Symbolen rendern, die für die Erstellung scharfer und sauberer Layouts in Terminalumgebungen unerlässlich sind. Ray ist eine entzückende kleine Ruby-Bibliothek, die den Geist von Minimalismus und Ausdruckskraft einfängt. Obwohl sie nicht die vollwertigen TUI‑Frameworks (Terminal User Interface) wie curses oder tty ersetzen kann, glänzt sie bei schneller Layout‑Prototypenerstellung, schöner Ausgabeformatierung und bietet eine spaßige, Ruby‑idiomatische Art, Terminalvisuals zu erstellen.

Previous Next

Erste Schritte mit Ray

Der einfachste Weg, die stabile Ray-Version zu installieren, ist die Verwendung von RubyGem. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Ray via RubyGem installieren

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

Sie können die kompilierte Shared-Bibliothek aus dem Github-Repository herunterladen.

Grundlegende Raycasting-Visualisierung über die Ruby-Bibliothek

Die Ray Ruby-Bibliothek bietet Ruby-Entwicklern leistungsstarke 3D-Mathematik und Raycasting-Funktionen in einem eleganten Paket. Raycasting ist unerlässlich, um Schnittpunkte zwischen Strahlen und Objekten in einem 2D- oder 3D-Raum zu erkennen. Die Ray-Bibliothek stellt eine unkomplizierte Methode zum Auswerfen von Strahlen und zum Abrufen von Kollisionsdaten bereit. Hier ist ein sehr nützliches Beispiel, das zeigt, wie man eine grundlegende Raycasting-Visualisierung mit der Ruby-Bibliothek durchführt.

Wie führt man eine grundlegende Raycasting-Visualisierung mit Ruby durch?

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

Berechnungen von Reflexion und Brechung

Die Open-Source-Ray-Bibliothek bietet vollständige Unterstützung für Reflexions- und Brechungsberechnungen in Ruby-Anwendungen. Die Bibliothek enthält Funktionen zur Berechnung von Strahlreflexionen und -brechungen, die für Lichteffekte, Spiegel und optische Simulationen nützlich sind. Hier ist ein einfaches Beispiel, das Softwareentwicklern zeigt, wie man die Strahlreflexion mit der Ruby-3D-Bibliothek berechnen kann.

Wie berechnet man die Strahlreflexion mit der Ruby-Bibliothek??

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

Ausrichtung und Positionierung

Die Open-Source-3D‑Ray-Bibliothek bietet vollständige Unterstützung für die Ausrichtung von 2D‑ und 3D‑Elementen in Ruby‑Anwendungen. Sie stellt einfache Methoden zum Ausrichten und Positionieren von Elementen bereit: Align‑-, Padding‑ und Margin‑Methoden geben Entwicklern Kontrolle über das Layout, ähnlich wie CSS‑Box‑Modelle. Das folgende einfache Beispiel zeigt, wie man mehrere Zeilen, die an beiden Enden der Leinwand ausgerichtet sind, mit Ruby‑Befehlen erhält.

Wie erhält man mehrere Zeilen, die an beiden Enden der Leinwand ausgerichtet sind, über die Ruby-API?

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

  text "Right aligned" do
    align :right
  end
end

Box-Zeichnung mit Unicode-Rahmen

Die Ray‑3D‑Bibliothek erleichtert Softwareentwicklern das Zeichnen von Boxen mit Unicode‑Grafiken in Ruby‑Anwendungen. Boxen strukturieren die Terminalausgabe. Ray verwendet Unicode‑Box‑Zeichen, um elegante Rahmen zu erstellen. Die box‑Methode umschließt Ihren Inhalt in einen sauberen Rahmen mit Zeichen wie ┌ ─ ┐ und └ ┘, wie im folgenden Codebeispiel gezeigt.

Wie verpackt man Inhalte in eine ordentliche Box mit Rahmen mithilfe der Ruby-Bibliothek?

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