Forums Archived

The forums are being archived. See this topic for more information.

Thick line drawing code

Post about games, applications, etc. made with Rubygame. Feel free to promote your own projects here!

Thick line drawing code

Postby shawn42 » Tue Feb 10, 2009 8:39 pm

Rubygame can now draw lines with a thickness. Until it becomes part of the Rubygame release, here is the code you need to get your own draw_line_a method:

Code: Select all
require 'ftor'
module Rubygame

  class Surface
    def draw_line_s(point1, point2, color, thickness)
      half_thickness = thickness/2.0
      x1 = point1[0]
      y1 = point1[1]
      x2 = point2[0]
      y2 = point2[1]

      point1_vector = Ftor.new x1, y1
      point2_vector = Ftor.new x2, y2

      line_vector = point2_vector-point1_vector
      perp_vector = line_vector.normal.unit

      points = []
      pvt = perp_vector*half_thickness
      poly_point1 = Ftor.new(x1,y1)+pvt
      poly_point2 = Ftor.new(x2,y2)+pvt
      poly_point3 = Ftor.new(x2,y2)-pvt
      poly_point4 = Ftor.new(x1,y1)-pvt

      points << [poly_point1.x,poly_point1.y]
      points << [poly_point2.x,poly_point2.y]
      points << [poly_point3.x,poly_point3.y]
      points << [poly_point4.x,poly_point4.y]
      points << [poly_point1.x,poly_point1.y]

      draw_polygon_s points, color
      draw_circle_s [x1,y1], half_thickness, color
      draw_circle_s [x2,y2], half_thickness, color
    end
  end

end # module Rubygame


Screen shot example: (thickness of 17)
Image
User avatar
shawn42
 
Posts: 109
Joined: Tue Feb 10, 2009 8:22 pm

Return to Creations

Who is online

Users browsing this forum: No registered users and 0 guests

cron