Βιβλιοθήκη Ruby για Δημιουργία & Απόδοση 3D Γραφικών & Ανάπτυξη Παιχνιδιών

Ανοιχτή Βιβλιοθήκη Ruby 3D για Δημιουργία και Απόδοση 3D Γραφικών & Σκηνών στην Ανάπτυξη Παιχνιδιών, Προσομοιώσεις και Ρομποτική μέσω Δωρεάν Ruby API.

Τι είναι η βιβλιοθήκη Ray ;

Αν είστε προγραμματιστής Ruby με αγάπη για κομψές DSL και γούστο για γραφικά σε τερματικό, η βιβλιοθήκη Ray είναι ένα ανοιχτού κώδικα gem που αξίζει να εξετάσετε. Δημιουργήθηκε από τον Mon-Ouie, το Ray προσφέρει μια γλώσσα-ειδικού-σκοπού (DSL) για τη δημιουργία όμορφων γραφικών ASCII και ANSI απευθείας στο τερματικό σας. Σε αντίθεση με πιο βαριές βιβλιοθήκες γραφικών, το Ray δίνει έμφαση στην απλότητα και την εκφραστικότητα, επιτρέποντάς σας να ορίζετε οπτικά στοιχεία με ελάχιστο κώδικα. Η βιβλιοθήκη υποστηρίζει τόσο λειτουργίες ακτινών 2D όσο και 3D, καθιστώντας την ευέλικτη για διάφορους τύπους εφαρμογών. Ας εμβαθύνουμε σε μερικά από τα συγκεκριμένα χαρακτηριστικά που προσφέρει η βιβλιοθήκη. Υποστηρίζει απλοποιημένη ρύθμιση Παιχνιδιού/Παραθύρου (DSL), δημιουργία και διαχείριση σκηνών, σχεδίαση κοινών 2D σχημάτων και κειμένου, δημιουργία βασικών γεωμετρικών σχημάτων, δημιουργία διανυσματικών μαθηματικών, υποστήριξη προσαρμοσμένων πινάκων μετασχηματισμού, υποστήριξη από-οθόνης απόδοσης και άλλα.

Το Ray είναι ένα DSL Ruby για τη δημιουργία γραφικών τερματικού, επιτρέποντάς σας να ορίζετε σχήματα, χρώματα, διαβαθμίσεις και διατάξεις χρησιμοποιώντας δηλωτική σύνταξη. Η βασική ιδέα είναι να αντιμετωπίζετε το τερματικό ως καμβά και να δημιουργείτε δομημένα γραφικά στοιχεία που μπορούν να συνδυαστούν όπως τα UI widgets. Σκεφτείτε το ως HTML και CSS για το τερματικό σας. Εκμεταλλεύεται τους κωδικούς διαφυγής ANSI και τους χαρακτήρες Unicode για την απόδοση σύνθετων οπτικών. Το Ray μπορεί να αποδίδει γραφικά χρησιμοποιώντας χαρακτήρες Unicode και σύμβολα σχεδίασης πλαισίων, που είναι απαραίτητα για τη δημιουργία καθαρών και οξέων διατάξεων σε περιβάλλοντα τερματικού. Το Ray είναι μια ευχάριστη μικρή βιβλιοθήκη Ruby που καταγράφει το πνεύμα του μινιμαλισμού και της εκφραστικότητας. Αν και μπορεί να μην αντικαταστήσει πλήρη πλαίσια TUI (Terminal User Interface) όπως τα curses ή tty, διαπρέπει στην γρήγορη πρωτοτυποποίηση διατάξεων, στην όμορφη μορφοποίηση εξόδου και στην παροχή ενός διασκεδαστικού, Ruby-ιδιωματικού τρόπου δημιουργίας τερματικών οπτικών.

Previous Next

Ξεκινώντας με το Ray

Ο πιο εύκολος τρόπος για να εγκαταστήσετε τη σταθερή έκδοση του Ray είναι χρησιμοποιώντας το RubyGem. Παρακαλώ χρησιμοποιήστε την παρακάτω εντολή για μια ομαλή εγκατάσταση.

Εγκαταστήστε το Ray μέσω RubyGem

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

Μπορείτε να κατεβάσετε τη μεταγλωττισμένη κοινόχρηστη βιβλιοθήκη από το αποθετήριο Github.

Βασική οπτικοποίηση Raycasting μέσω της βιβλιοθήκης Ruby

Η βιβλιοθήκη Ray Ruby προσφέρει ισχυρά μαθηματικά 3D και δυνατότητες raycasting στους προγραμματιστές Ruby σε ένα κομψό πακέτο. Το raycasting είναι απαραίτητο για την ανίχνευση τομών μεταξύ ακτίνων και αντικειμένων σε χώρο 2D ή 3D. Η βιβλιοθήκη Ray παρέχει έναν απλό τρόπο για την εκπομπή ακτίνων και την ανάκτηση δεδομένων σύγκρουσης. Εδώ είναι ένα πολύ χρήσιμο παράδειγμα που δείχνει πώς να εκτελέσετε βασική οπτικοποίηση raycasting χρησιμοποιώντας τη βιβλιοθήκη Ruby.

Πώς να εκτελέσετε βασική οπτικοποίηση Raycasting χρησιμοποιώντας 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

Υπολογισμοί Αντανάκλασης και Διάθλασης

Η ανοιχτού κώδικα βιβλιοθήκη Ray έχει προσφέρει πλήρη υποστήριξη για υπολογισμούς ανάκλασης και διάθλασης μέσα σε εφαρμογές Ruby. Η βιβλιοθήκη περιλαμβάνει συναρτήσεις για τον υπολογισμό αντανακλάσεων και διαθλάσεων ακτίνων, που είναι χρήσιμες για εφέ φωτισμού, καθρέφτες και οπτικές προσομοιώσεις. Εδώ είναι ένα απλό παράδειγμα που δείχνει πώς οι προγραμματιστές λογισμικού μπορούν να υπολογίζουν την ανάκλαση ακτίνων χρησιμοποιώντας τη βιβλιοθήκη Ruby 3D.

Πώς να υπολογίσετε την αντανάκλαση ακτινών μέσω της βιβλιοθήκης 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}"

Στοίχιση και Τοποθέτηση

Η ανοιχτού κώδικα βιβλιοθήκη 3D Ray έχει παρέχει πλήρη υποστήριξη για ευθυγραμμίσεις στοιχείων 2D και 3D μέσα σε εφαρμογές Ruby. Προσφέρει απλές μεθόδους για την ευθυγράμμιση και τοποθέτηση στοιχείων: οι μέθοδοι align, padding και margin δίνουν στους προγραμματιστές έλεγχο πάνω στη διάταξη, παρόμοιο με τα μοντέλα κουτιών CSS. Το παρακάτω απλό παράδειγμα δείχνει πώς να λάβετε πολλαπλές γραμμές, ευθυγραμμισμένες και στις δύο άκρες του καμβά χρησιμοποιώντας εντολές Ruby.

Πώς να λάβετε πολλαπλές γραμμές, ευθυγραμμισμένες στα δύο άκρα του καμβά μέσω του Ruby API;

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

  text "Right aligned" do
    align :right
  end
end

Σχεδίαση Πλαισίου με Σύνορα Unicode

Η βιβλιοθήκη Ray 3D καθιστά εύκολο για τους προγραμματιστές λογισμικού να σχεδιάζουν Κουτιά με σχεδίαση Unicode μέσα σε εφαρμογές Ruby. Τα Κουτιά κάνουν την έξοδο του τερματικού σας πιο δομημένη. Η Ray χρησιμοποιεί χαρακτήρες σχεδίασης κουτιών Unicode για να δημιουργήσει κομψά πλαίσια. Η μέθοδος box τυλίγει το περιεχόμενό σας σε ένα καθαρό πλαίσιο χρησιμοποιώντας χαρακτήρες όπως ┌ ─ ┐ και └ ┘ όπως φαίνεται στο παρακάτω παράδειγμα κώδικα.

Πώς να τυλίξετε το περιεχόμενο σε ένα κομψό κουτί με περίγραμμα χρησιμοποιώντας τη βιβλιοθήκη Ruby;

Ray.draw(width: 50, height: 8) do
  box do
    text "Welcome to Ray UI!" do
      align :center
    end
  end
end
 Ελληνικά