No Such Blog or Diary
Postscript で放物線を書く
- 2014-09-03 (Wed)
- プログラミング
簡単に書けると思ってたら意外と手間がかかった.検索しても答えが見つからんし.
ということで,3次ベジェ曲線の式と放物線の式と2時間くらい格闘した結果が以下の PS ファイル.とりあえず,PSTricks の \parabola に倣ってひとつの端点と放物線の頂点をパラメータに渡す関数 parabola を作ってみた.
%!PS-Adobe-3.0
%%BoundingBox: 0 -10 201 201
newpath 0 0 200 0 moveto lineto stroke
/parabola {
4 dict begin
/y3 exch def % the top
/x3 exch def
/y0 exch def % start point
/x0 exch def
% control point at the start point
/x1 x0 x0 x3 sub 3 div sub def
/y1 y0 y0 y3 sub 3 div 2 mul sub def
% control point at the top
/x2 x3 x0 x3 sub 3 div add def
/y2 y3 def
% end point
/x6 x3 x3 x0 sub add def
/y6 y0 def
% control point at the end point
/x4 x3 x6 x3 sub 3 div add def
/y4 y3 def
% control point at the top point
/x5 x6 x6 x3 sub 3 div sub def
/y5 y6 y6 y3 sub 3 div 2 mul sub def
% now, draw the parabola curve!
newpath x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto x3 y3 moveto x4 y4 x5 y5 x6 y6 curveto stroke
end
} def
% specify the start and the top points
0 0 100 150 parabola
0 200 100 150 parabola
showpage
結局, P(t) = P0 (1-t)^3 + 3 P1(1-t)^2 t + 3 P2(1-t) t^2 + P3 t^3 という3次ベジェ曲線の式から,端点 P0 = P(0) と P3 = P(1) とそこでの微分 P'(0) と P'(1) とを指定してあげれば,制御点 P1 と P2 は P1 = P0 + P'(0)/3 と P2 = P3 - P'(1)/3 で決定できる.この微分値 P'(0) と P'(1) とを指定して描かせるのは面倒なので,放物線の頂点と他一点を与えることで方程式(y-y0 = a (x-x0)^2)を確定して,その方程式から(t = (x-x0)/(x3-x0)とでもして)計算してあげることにする.それが上のPSファイルの中身.んで,計算された制御点を使ってあげると任意の t in [0,1] でP(t)は指定した放物線になっている.
- Comments: 0
- TrackBack (Close): -
車が入院
- 2014-09-02 (Tue)
- 一般
エンジン始動後暫くの異音を直すために今日から車が入院.一週間くらいの予定らしいけれど具体的にどの程度かかるかは不明.
そして代車が新車.4月のマイナーチェンジ後の Vitz 1.3F で眩しい黄色.オドメータが10km.ETC のセットアップすら済んでなかったという.
せっかくなのでタンク一杯分くらいは走ってみようか.
- Comments: 0
- TrackBack (Close): -
強制再起動とか滅べ……
- 2014-09-01 (Mon)
- 一般
Windows 8 で強制再起動を食らって仕事が…… ウェブのセッション切れるとかやめて欲しいんだけど.世の中はアトミックではないトランザクションで溢れているのだし.
強制再起動のキャンセル方法を知っておかないと危険だなと思った今日このごろ.
- Comments: 0
- TrackBack (Close): -
24時間テレビ
- 2014-08-31 (Sun)
- 一般
リーダーのマラソンだけを24時間垂れ流しのほうが視聴率取れたんじゃなかろうか? とりあえず,最後の追い上げがすごかった.
- Comments: 0
- TrackBack (Close): -
晴れた
- 2014-08-30 (Sat)
- 一般
翌日の天気すら当たらない最近の天気予報…… 今月の天気は悩ましい.
せっかく晴れたので,一年点検に出した後に全然乗ってなかったバイクで30キロほどふらふら出かけてみた.とりあえず,使い道のなさそうな新たな山越えルートが開拓された.なんのためにある道なのか微妙に謎.
- Comments: 0
- TrackBack (Close): -