class
Celestine::Path
- Celestine::Path
- Celestine::Drawable
- Reference
- Object
Overview
A class which represents an SVG path. Supports traditional short SVG methods (a_move, r_line, etc.) as well as a fluent, chainable API (move_to, line_to, etc.), Point/Tuple overloads, procedural shape builders (star, polygon, arc sector, rounded rect, heart), and turtle graphics.
Included Modules
- Celestine::Modules::Animate
- Celestine::Modules::Animate::Motion
- Celestine::Modules::Animate::Transform
- Celestine::Modules::Clip
- Celestine::Modules::Filter
- Celestine::Modules::Marker
- Celestine::Modules::Mask
- Celestine::Modules::StrokeFill
- Celestine::Modules::Transform
Defined in:
drawables/path.crConstant Summary
-
TAG =
"path"
Instance Method Summary
- #a_arc(x : Number, y : Number, rx : Number, ry : Number, rotation : Number = 0, large : Bool = false, flip : Bool = false) : self
- #a_bcurve(cx1 : Number, cy1 : Number, cx2 : Number, cy2 : Number, x : Number, y : Number) : self
-
#a_h_line(x : Number) : self
Draws a horizontal line to an absolute point
-
#a_line(x : Number, y : Number) : self
Draws a line to an absolute point
-
#a_move(x : Number, y : Number) : self
Moves to an absolute point
- #a_q_bcurve(cx : Number, cy : Number, x : Number, y : Number) : self
- #a_s_bcurve(cx2 : Number, cy2 : Number, x : Number, y : Number) : self
- #a_t_bcurve(x : Number, y : Number) : self
-
#a_v_line(y : Number) : self
Draws a vertical line to an absolute point
-
#arc_by(rx : Number, ry : Number, rotation : Number = 0, large : Bool = false, sweep : Bool = false, dx : Number = 0, dy : Number = 0) : self
Elliptical arc by relative offset (a)
-
#arc_sector(cx : Number, cy : Number, r_inner : Number, r_outer : Number, start_angle : Number, end_angle : Number) : self
Generates an arc ring sector (annular sector) between start_angle and end_angle (in degrees)
-
#arc_to(rx : Number, ry : Number, rotation : Number = 0, large : Bool = false, sweep : Bool = false, x : Number = 0, y : Number = 0) : self
Elliptical arc to absolute destination (A)
- #arc_to(rx : Number, ry : Number, to : Tuple(IFNumber, IFNumber) | Celestine::FPoint | Celestine::Point, rotation : Number = 0, large : Bool = false, sweep : Bool = false) : self
-
#close : self
Closes the path.
-
#close_path : self
Closes current path
-
#code : String
Finalized path code points.
- #code=(other : String)
-
#curve_by(dcx1 : Number, dcy1 : Number, dcx2 : Number, dcy2 : Number, dx : Number, dy : Number) : self
Cubic Bézier curve by relative offset (c)
-
#curve_to(cx1 : Number, cy1 : Number, cx2 : Number, cy2 : Number, x : Number, y : Number) : self
Cubic Bézier curve to absolute destination (C)
- #curve_to(c1 : Tuple(IFNumber, IFNumber) | Celestine::FPoint | Celestine::Point, c2 : Tuple(IFNumber, IFNumber) | Celestine::FPoint | Celestine::Point, to : Tuple(IFNumber, IFNumber) | Celestine::FPoint | Celestine::Point) : self
-
#draw(io : IO) : Nil
Main draw method for a drawable.
-
#heart(cx : Number, cy : Number, size : Number) : self
Generates a heart shape centered at (cx, cy)
- #horizontal_by(dx : Number) : self
-
#horizontal_to(x : Number) : self
Horizontal line to absolute coordinate (H)
-
#line_by(dx : Number, dy : Number) : self
Draws line by relative offset (l)
- #line_by(pt : Celestine::Point | Celestine::FPoint | Tuple(IFNumber, IFNumber)) : self
-
#line_to(x : Number, y : Number) : self
Draws line to absolute coordinates (L)
- #line_to(pt : Celestine::Point | Celestine::FPoint | Tuple(IFNumber, IFNumber)) : self
-
#move_by(dx : Number, dy : Number) : self
Moves cursor by relative offset (m)
- #move_by(pt : Celestine::Point | Celestine::FPoint | Tuple(IFNumber, IFNumber)) : self
-
#move_to(x : Number, y : Number) : self
Moves cursor to absolute coordinates (M)
- #move_to(pt : Celestine::Point | Celestine::FPoint | Tuple(IFNumber, IFNumber)) : self
- #quad_by(dcx : Number, dcy : Number, dx : Number, dy : Number) : self
-
#quad_to(cx : Number, cy : Number, x : Number, y : Number) : self
Quadratic Bézier curve to absolute destination (Q)
- #r_arc(dx : Number, dy : Number, rx : Number, ry : Number, rotation : Number = 0, large : Bool = false, flip : Bool = false) : self
- #r_bcurve(dcx1 : Number, dcy1 : Number, dcx2 : Number, dcy2 : Number, dx : Number, dy : Number) : self
-
#r_h_line(dx : Number) : self
Draws a horizontal line to a relative point
-
#r_line(dx : Number, dy : Number) : self
Draws a line to a relative point
-
#r_move(dx : Number, dy : Number) : self
Moves to a relative point
- #r_q_bcurve(dcx : Number, dcy : Number, dx : Number, dy : Number) : self
- #r_s_bcurve(dcx2 : Number, dcy2 : Number, dx : Number, dy : Number) : self
- #r_t_bcurve(dx : Number, dy : Number) : self
-
#r_v_line(dy : Number) : self
Draws a vertical line to a relative point
-
#regular_polygon(cx : Number, cy : Number, sides : Int32, radius : Number, start_angle : Float64 = -90.0) : self
Generates a regular polygon with
sidesvertices centered at (cx, cy) -
#rough_circle(cx : Number, cy : Number, r : Number, roughness : Float64 = 1.0, bowing : Float64 = 1.0, seed : UInt64 = 42_u64) : self
Draws a hand-drawn sketchy circle
-
#rough_line(x1 : Number, y1 : Number, x2 : Number, y2 : Number, roughness : Float64 = 1.0, bowing : Float64 = 1.0, seed : UInt64 = 42_u64) : self
Draws a hand-drawn sketchy line
-
#rough_polygon(points : Array(Tuple(IFNumber, IFNumber)) | Array(Celestine::Point) | Array(Celestine::FPoint), roughness : Float64 = 1.0, bowing : Float64 = 1.0, seed : UInt64 = 42_u64) : self
Draws a hand-drawn sketchy polygon
-
#rough_rect(x : Number, y : Number, width : Number, height : Number, roughness : Float64 = 1.0, bowing : Float64 = 1.0, seed : UInt64 = 42_u64) : self
Draws a hand-drawn sketchy rectangle
-
#rounded_rect(x : Number, y : Number, width : Number, height : Number, rx : Number, ry : Number = rx) : self
Generates a rounded rectangle path
- #smooth_curve_by(dcx2 : Number, dcy2 : Number, dx : Number, dy : Number) : self
-
#smooth_curve_to(cx2 : Number, cy2 : Number, x : Number, y : Number) : self
Smooth Cubic Bézier curve to absolute destination (S)
- #smooth_quad_by(dx : Number, dy : Number) : self
-
#smooth_quad_to(x : Number, y : Number) : self
Smooth Quadratic Bézier curve to absolute destination (T)
-
#star(cx : Number, cy : Number, points : Int32, outer_radius : Number, inner_radius : Number, start_angle : Float64 = -90.0) : self
Generates a symmetrical star with
pointsouter peaks centered at (cx, cy) -
#turtle(start_x : Number = 0.0, start_y : Number = 0.0, angle : Float64 = 0.0, &block : Turtle -> ) : self
Opens a turtle graphics drawing session
- #vertical_by(dy : Number) : self
-
#vertical_to(y : Number) : self
Vertical line to absolute coordinate (V)
Instance methods inherited from module Celestine::Modules::Animate::Transform
animate_transform_rotate(&block : Celestine::Animate::Transform::Rotate -> )
animate_transform_rotate,
animate_transform_scale(&block : Celestine::Animate::Transform::Scale -> )
animate_transform_scale,
animate_transform_skew_x(&block : Celestine::Animate::Transform::SkewX -> )
animate_transform_skew_x,
animate_transform_skew_y(&block : Celestine::Animate::Transform::SkewY -> )
animate_transform_skew_y,
animate_transform_translate(&block : Celestine::Animate::Transform::Translate -> )
animate_transform_translate
Instance methods inherited from module Celestine::Modules::Animate::Motion
animate_motion(&block : Celestine::Animate::Motion -> )
animate_motion
Instance methods inherited from module Celestine::Modules::Animate
animate(&block : Celestine::Animate -> )
animate
Instance methods inherited from module Celestine::Modules::Marker
marker_attribute(io : IO)
marker_attribute,
set_marker_end(id : String)set_marker_end(marker : Celestine::Marker) set_marker_end, set_marker_mid(id : String)
set_marker_mid(marker : Celestine::Marker) set_marker_mid, set_marker_start(id : String)
set_marker_start(marker : Celestine::Marker) set_marker_start
Instance methods inherited from module Celestine::Modules::Clip
clip_path_attribute(io : IO)
clip_path_attribute,
clip_rule : String | Nil
clip_rule,
clip_rule=(val : String)
clip_rule=,
set_clip_path(id : String)set_clip_path(clip_path : Celestine::ClipPath) set_clip_path
Instance methods inherited from module Celestine::Modules::Filter
filter_attribute(io : IO)
filter_attribute,
set_filter(id : String)set_filter(filter : Celestine::Filter) set_filter
Instance methods inherited from module Celestine::Modules::Mask
mask_attribute(io : IO)
mask_attribute,
set_mask(id : String)set_mask(mask : Celestine::Mask) set_mask
Instance methods inherited from module Celestine::Modules::Transform
transform(&block : Celestine::Drawable::Transform -> )
transform,
transform_attribute(io : IO)
transform_attribute
Instance methods inherited from module Celestine::Modules::StrokeFill
color : String | Nil
color,
color=(color : String | Nil)color=(c : Celestine::Color) color=, color_interpolation : String | Nil color_interpolation, color_interpolation=(color_interpolation : String | Nil) color_interpolation=, color_interpolation_filters : String | Nil color_interpolation_filters, color_interpolation_filters=(color_interpolation_filters : String | Nil) color_interpolation_filters=, dash_array : Array(Float64) dash_array, dash_array=(dash_array : Array(Float64)) dash_array=, dash_offset : IFNumber | Nil dash_offset, dash_offset=(dash_offset : IFNumber | Nil) dash_offset=, dash_offset_units : String | Nil dash_offset_units, dash_offset_units=(dash_offset_units : String | Nil) dash_offset_units=, fill : String | Nil fill, fill=(fill : String | Nil)
fill=(color : Celestine::Color) fill=, fill_opacity : IFNumber | Nil fill_opacity, fill_opacity=(fill_opacity : IFNumber | Nil) fill_opacity=, fill_rule : Bool fill_rule, fill_rule=(fill_rule : Bool) fill_rule=, line_cap : String | Nil line_cap, line_cap=(line_cap : String | Nil) line_cap=, line_join : String | Nil line_join, line_join=(line_join : String | Nil) line_join=, miter_limit : IFNumber | Nil miter_limit, miter_limit=(miter_limit : IFNumber | Nil) miter_limit=, miter_limit_units : String | Nil miter_limit_units, miter_limit_units=(miter_limit_units : String | Nil) miter_limit_units=, opacity : IFNumber | Nil opacity, opacity=(opacity : IFNumber | Nil) opacity=, set_fill(pattern : Celestine::Pattern)
set_fill(gradient : Celestine::Gradient) set_fill, set_stroke(pattern : Celestine::Pattern)
set_stroke(gradient : Celestine::Gradient) set_stroke, shape_rendering : String | Nil shape_rendering, shape_rendering=(shape_rendering : String | Nil) shape_rendering=, stroke : String | Nil stroke, stroke=(stroke : String | Nil)
stroke=(color : Celestine::Color) stroke=, stroke_fill_attribute(io : IO) stroke_fill_attribute, stroke_opacity : IFNumber | Nil stroke_opacity, stroke_opacity=(stroke_opacity : IFNumber | Nil) stroke_opacity=, stroke_width : IFNumber | Nil stroke_width, stroke_width=(stroke_width : IFNumber | Nil) stroke_width=, stroke_width_units : String | Nil stroke_width_units, stroke_width_units=(stroke_width_units : String | Nil) stroke_width_units=, vector_effect : String | Nil vector_effect, vector_effect=(vector_effect : String | Nil) vector_effect=
Instance methods inherited from class Celestine::Drawable
class_attribute(io : IO)
class_attribute,
classes : Array(String)
classes,
classes=(val : Array(String))
classes=,
custom_attribute(io : IO)
custom_attribute,
custom_attrs : Hash(String, String)
custom_attrs,
custom_attrs=(val : Hash(String, String))
custom_attrs=,
draw(io : IO) : Nil
draw,
has_inner_elements? : Bool
has_inner_elements?,
id : String | Nil
id,
id=(id : String | Nil)
id=,
id_attribute(io : IO)
id_attribute,
inner_elements : IO::Memory
inner_elements,
inner_elements=(val : IO::Memory)
inner_elements=,
style : Hash(String, String)
style,
style=(val : Hash(String, String))
style=,
style_attribute(io : IO)
style_attribute,
to_s(io : IO) : Nilto_s : String to_s
Instance Method Detail
Elliptical arc by relative offset (a)
Generates an arc ring sector (annular sector) between start_angle and end_angle (in degrees)
Elliptical arc to absolute destination (A)
Cubic Bézier curve by relative offset (c)
Cubic Bézier curve to absolute destination (C)
Main draw method for a drawable. Takes in and interacts with an io.
Generates a heart shape centered at (cx, cy)
Quadratic Bézier curve to absolute destination (Q)
Generates a regular polygon with sides vertices centered at (cx, cy)
Draws a hand-drawn sketchy circle
Draws a hand-drawn sketchy line
Draws a hand-drawn sketchy polygon
Draws a hand-drawn sketchy rectangle
Generates a rounded rectangle path
Smooth Cubic Bézier curve to absolute destination (S)
Smooth Quadratic Bézier curve to absolute destination (T)
Generates a symmetrical star with points outer peaks centered at (cx, cy)