Sha256: 42bdd976f86bde3700ce46ce3f26ba411e8804cf07b2b42ec2708aabf1e069ea

Contents?: true

Size: 1.73 KB

Versions: 1

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true
degree = 0
color  = 0
size   = 0

Shoes.app width: 537, height: 500 do
  background rgb(1.0, 0.5, 1.0, 1.0)
  # Convert degrees to radians
  def to_radians(deg)
    deg * Math::PI / 180
  end

  red_circles = []
  blue_circles = []

  mx = (500 / 2).to_i
  my = (537 / 2).to_i
  animate(36) do
    # clear do
    # Manage color
    nostroke
    # Update some variables
    degree += 1
    size += 1
    degree = 0 if degree >= 360
    size = 0 if size >= 100
    color = 0.0 if color >= 1.0
    color += 0.05 if (degree % 10).zero?

    # Draw inner circle
    fill red(color)
    10.times do |i|
      current_size = 100 + size
      d = to_radians(i * 60 + degree)
      rx = Math.cos(d) * 100
      ry = Math.sin(d) * 100
      center_x = -current_size / 2 + rx + mx
      center_y = -current_size / 2 + ry + my
      if red_circles.size == 10
        r = red_circles[i]
        r.style fill: red(color)
        r.left = center_x
        r.top = center_y
        r.width = current_size
        r.height = current_size
      else
        red_circles << oval(center_x, center_y, current_size, current_size)
      end
    end

    # Draw outer circle
    fill blue(color)
    20.times do |i|
      current_size = 50 + size
      d = to_radians(i * 30 - degree)
      rx = Math.cos(d) * 150
      ry = Math.sin(d) * 150
      center_x = -current_size / 2 + rx + mx
      center_y = -current_size / 2 + ry + my
      if blue_circles.size == 20
        b = blue_circles[i]
        b.style fill: blue(color)
        b.left = center_x
        b.top = center_y
        b.width = current_size
        b.height = current_size
      else
        blue_circles << oval(center_x, center_y, current_size, current_size)
      end
    end
    # end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoes-4.0.0.pre12 samples/good_psychidelic_circles.rb