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

Biblioteca Ruby para Criar e Renderizar Gráficos 3D & Desenvolvimento de Jogos

Biblioteca Ruby 3D de código aberto para criar e renderizar gráficos e cenas 3D no desenvolvimento de jogos, simulações e robótica, usando API Ruby gratuita.

O que é a Biblioteca Ray?

Se você é um desenvolvedor Ruby com amor por DSLs elegantes e gosto por gráficos baseados em terminal, a biblioteca Ray é uma gem de código aberto que vale a pena conferir. Criada por Mon-Ouie, Ray oferece uma linguagem específica de domínio (DSL) para construir belos gráficos ASCII e ANSI diretamente no seu terminal. Ao contrário de bibliotecas gráficas mais pesadas, Ray enfatiza simplicidade e expressividade, permitindo definir visuais com código mínimo. A biblioteca suporta operações de ray tanto 2D quanto 3D, tornando-a versátil para diferentes tipos de aplicações. Vamos nos aprofundar em algumas das funcionalidades específicas oferecidas pela biblioteca. Ela suporta configuração simplificada de Game/Window (DSL), criação e gerenciamento de cenas, desenho de formas 2D comuns e texto, criação de formas geométricas básicas, criação de matemática vetorial, suporte a matrizes de transformação personalizadas, suporte a renderização off-screen e assim por diante.

Ray é um DSL Ruby para desenhar gráficos no terminal, permitindo que você defina formas, cores, gradientes e layouts usando uma sintaxe declarativa. A ideia central é tratar o terminal como uma tela e construir elementos gráficos estruturados que podem ser compostos como widgets de UI. Pense nele como HTML e CSS para o seu terminal. Ele aproveita os códigos de escape ANSI e caracteres Unicode para renderizar visuais complexos. Ray pode renderizar gráficos usando caracteres Unicode e símbolos de desenho de caixa, que são essenciais para criar layouts nítidos e limpos em ambientes de terminal. Ray é uma pequena e agradável biblioteca Ruby que captura o espírito de minimalismo e expressividade. Embora possa não substituir frameworks TUI (Interface de Usuário de Terminal) completos como curses ou tty, ele se destaca na prototipagem rápida de layouts, formatação de saída bonita e oferece uma maneira divertida e idiomática em Ruby de criar visuais no terminal.

Previous Next

Começando com Ray

A maneira mais fácil de instalar a versão estável do Ray é usando RubyGem. Por favor, use o comando a seguir para uma instalação tranquila.

Instalar Ray via RubyGem

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

Você pode baixar a biblioteca compartilhada compilada do repositório Github.

Visualização Básica de Raycasting via Biblioteca Ruby

A biblioteca Ray Ruby traz matemática 3D poderosa e recursos de raycasting para desenvolvedores Ruby em um pacote elegante. Raycasting é essencial para detectar interseções entre raios e objetos em um espaço 2D ou 3D. A biblioteca Ray fornece uma maneira simples de lançar raios e recuperar dados de colisão. Aqui está um exemplo muito útil que demonstra como realizar visualização básica de raycasting usando a biblioteca Ruby.

Como executar visualização básica de raycasting usando 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

Cálculos de Reflexão e Refração

A biblioteca Ray de código aberto forneceu suporte completo para cálculos de reflexão e refração em aplicações Ruby. A biblioteca inclui funções para calcular reflexões e refrações de raios, que são úteis para efeitos de iluminação, espelhos e simulações ópticas. Aqui está um exemplo simples que demonstra como desenvolvedores de software podem calcular a reflexão de raios usando a biblioteca Ruby 3D.

Como calcular a reflexão de raios via biblioteca 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}"

Alinhamento e Posicionamento

A biblioteca open source 3D Ray tem fornecido suporte completo para alinhamentos de elementos 2D e 3D dentro de aplicações Ruby. Ela oferece métodos simples para alinhar e posicionar elementos: os métodos align, padding e margin dão aos desenvolvedores controle sobre o layout, semelhante aos modelos de caixa CSS. O exemplo simples a seguir mostra como obter múltiplas linhas, alinhadas em ambas as extremidades da tela usando comandos Ruby.

Como obter múltiplas linhas, alinhadas em ambas as extremidades da tela via API Ruby?

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

  text "Right aligned" do
    align :right
  end
end

Desenho de Caixas com Bordas Unicode

A biblioteca Ray 3D facilita para desenvolvedores de software desenhar caixas com desenho Unicode dentro de aplicações Ruby. As caixas tornam a saída do seu terminal mais estruturada. Ray usa caracteres de desenho de caixa Unicode para criar bordas elegantes. O método box envolve seu conteúdo em uma borda limpa usando caracteres como ┌ ─ ┐ e └ ┘, como mostrado no exemplo de código a seguir.

Como envolver conteúdo em uma caixa organizada com borda usando a biblioteca Ruby?

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