【曲線-30】円錐形の螺旋を描いてみよう

【曲線-29】で描いた弦巻線は円柱に線を巻き付けたような形でしたが、今回は円錐に巻きつけたような螺旋です。
マセマティカでおなじみのmathworldを参考にしました。

Wolfram MathWorld


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 720 720
%%HiResBoundingBox: 0 0 720 720
%%CropBox:  0 0 720 720
%%Title: conical spiral 円錐形の螺旋
%%Creator:Studio Fruit Jam / Toyokazu Nishi
%%Copyright:Studio Fruit Jam / Toyokazu Nishi
%%CreationDate:2018年11月5日 月曜日午後1:52:22

% conical spiralの式
% x=th*r*cos(a*th)
% y=th*r*sin(a*th)
% z=b*th

% ================ 座標変換 ================
360 360 translate
1 dup scale
% ================ 背景 =================
0 0 0 setrgbcolor
-360 360 720 -720 rectfill
% ================ 定義 ================
1 1 1 setrgbcolor
1 setlinewidth  % 線幅を1ポイントにする
/xa 10 def    % 弦巻きのX軸角度 a:angle
/ya 0 def   % 弦巻きのY軸角度
/za 0 def   % 弦巻きのZ軸角度
/r 1 def    % 弦巻きの径サイズ
/L 300 def    % 弦巻きの長さ
/a 20 def   % 振幅の係数
/b 2 def    % 高さの係数
/sw 0 def
0 -300 translate  % 下に移動
% ================ プロシージャ================
% 図形の回転
/rotation {
  /x1 x def
  /y1 y xa cos mul z xa sin mul sub def
  /z1 y xa sin mul z xa cos mul add def
 
  /x2 x1 ya cos mul z1 ya sin mul add def
  /y2 y1 def
  /z2 z1 ya cos mul x1 ya sin mul sub def
 
  /x3 x2 za cos mul y2 za sin mul sub def
  /y3 x2 za sin mul y2 za cos mul add def
  /z3 z2 def
} def

% ================ メイン================
newpath % パスの初期化

0 .1 L {
  /th exch def
  /x th r mul a th mul cos mul def
  /y b th mul def
  /z th r mul a th mul sin mul def
  rotation
  sw 0 eq { x3 y3 moveto /sw 1 def }
  { x3 y3 lineto } ifelse
} for
stroke

保存保存

保存保存

保存保存