■CGにおける楕円曲線の高速発生法公開
図1 これまでの一般楕円生成法 図2 本提案による一般楕円高速発生法
赤丸:(Xn,Yn) 赤丸:(Xn,Yn) 青丸:(X'n,Y'n)
1.これまでの一般楕円生成法
傾斜した楕円を一般楕円というが、通常は図1のように順次Pn=(Xn,Yn)を
計算して描画する。計算式は、次の式で与えられる。
Xn=a・cosφcosθn−b・sinφsinθn
Yn=a・sinφcosθn+b・cosφsinθn
ここに総ポイント数をN=2K、刻み角をΔθ=π/K、θn=nΔθとする。
2.一般楕円の高速発生方法
上記方法では三角関数演算または、三角関数テーブル参照が避けられない。
ここでは、三角関数演算も三角関数テーブル参照も不要で、簡単かつ高速に一般楕円
を発生する方法を紹介する。計算式は、わずか次の2行のループである。
X=X−ε・X': X'=X'+ε・X
Y=Y−ε・Y': Y'=Y'+ε・Y
上の2行のループで、図2の赤丸(Xn,Yn)、青丸:(X'n,Y'n)が生成できる。
初期値計算は総ポイント数をN=4K、刻み角Δθ=π/K、S1=sinφ、C1=cosφ、
S2=sin(Δθ/2)、C2=cos(Δθ/2)、ε=2S2、
X=a・C1、X'=X・S2+b・S1・C2、Y=a・S1、Y'=Y・S2−b・C1・C2
この方法では、1点を生成するのに必要な演算は乗算2回と加減算2回である。通常の方法は
三角関数演算(またはテーブル参照)2回、乗算4回、加減算2回である。また従来最速とし
て知られるL.B.Smithの方法(1971)でも、乗算4回、加減算4回であり、本手法は初期値計算
が比較的簡単で、かつメインループの演算量がこれまでの最速法と比べても半分であるという
優れた方法である。
詳細は次の論文を参照してください。
輿水大和、沼田宗敏:"一般楕円生成の高速化について",電子情報通信学会春季大会,
D-613(1993)
|