概要
windows11に、sketchup6を入れてみた。
rubyで、3Dを書く。
タートルグラフィックスを見つけたのでやってみた。
参考にしたページ
写真
サンプルコード
class Kame4
def initialize
model = Sketchup.active_model
@entities = model.active_entities
@ANGLE = 0
@LX = 10
@LY = 10
@pen = 1
run()
end
def fmod(a, b)
x = (a / b).floor
return a - b * x
end
def pen(i)
if i == 0
@pen = 0
else
@pen = 1
end
end
def turn(a)
@ANGLE = fmod(@ANGLE + a, 360.0)
end
def move(l)
p = []
rd = Math::PI / 180.0
x = l * Math::cos(rd * @ANGLE)
y = -l * Math::sin(rd * @ANGLE)
px = @LX
py = @LY
p << [px, py, 0]
@LX += x
@LY += y
p << [@LX, @LY, 0]
if @pen == 1
@entities.add_curve(p)
end
end
def run()
move 80
pen 0
turn -165
move 40
turn -105
pen 1
move 15
turn 45
move 40
pen 0
turn 180
move 40
turn 90
pen 1
move 40
pen 0
turn -95
move 50
turn 50
pen 1
move 80
pen 0
turn 180
move 40
turn -45
pen 1
move 50
pen 0
turn 180
move 24
turn 135
pen 1
move 20
pen 0
turn 180
move 20
turn 90
pen 1
move 40
turn 90
move 20
pen 0
turn 90
move 40
turn 180
pen 1
move 40
pen 0
turn -30
move 100
turn 165
pen 1
move 10
pen 0
turn 45
move 40
turn -90
pen 1
move 20
pen 0
turn 180
move 20
turn 90
pen 1
move 80
turn 90
move 20
pen 0
turn 97
move 81
turn 173
pen 1
move 80
pen 0
turn 173
move 81
turn -173
pen 1
move 80
pen 0
turn 180
move 40
turn -90
pen 1
move 50
turn 120
move 15
pen 0
turn 20
move 35
turn 130
pen 1
move 35
turn 145
move 40
pen 0
turn -165
move 70
turn 190
pen 1
move 32
turn -125
move 30
turn -45
move 10
pen 0
turn 177
move 250
turn -177
pen 1
move 60
pen 0
turn -155
move 25
turn -115
pen 1
move 30
for i in (1..36)
turn 10
move 2
end
move 15
turn 50
move 30
pen 0
turn -170
move 100
turn 20
pen 1
move 50
pen 0
turn 165
move 50
turn -165
pen 1
move 50
pen 0
turn -140
move 35
turn -140
pen 1
move 40
turn 110
move 10
pen 0
turn -30
move 20
turn -110
pen 1
move 15
turn -40
move 40
end
end
以上。