Article View: fj.sci.math
Article #13579Re: question about arc data representation (In Japanese/Kanji)
From: K.Oguchi
Date: Sun, 21 Jul 1996 00:00
Date: Sun, 21 Jul 1996 00:00
46 lines
2417 bytes
2417 bytes
小口です。
些細なことですが...
<HAS.96Jul20020755@dragon.rd.nacsis.ac.jp>の記事において
has@rd.nacsis.ac.jpさんは書きました。
>In article <2235@hstgwa.hst.co.jp>, kitamura@hsts08.hst.co.jp (Kousei Kitamura) writes:
> > 円弧の表現として
> > 1. 始点座標(X1, Y1)
> > 2. 終点座標(X2, Y2)
> > 3. 円弧部分の内角(Θ)の 1/4 の正接 ... tan(Θ/4)
> > 左回りの場合は正、右回りの場合は負
> > が与えられたとき、その円弧の中心点の座標を算出しなければな
> > りません。 その計算の方法を教えていただけませんでしょうか。
>
>t = tan(Θ/4), T = (1-t*t)/(2*t) ( = cot(Θ/2) ) として、中心の座標は,
>
> ( (-T*(Y1-Y2)+(X1+X2))/2, (T*(X1-X2)+(Y1+Y2))/2 )
>
>になります。ちなみに円の半径は
>
> sqrt((1+T*T)*((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)))/2
この橋爪さんの求めた円の半径の式の中の 1+T*T を計算すると
<4so3r5$ga7@epsongw.epson.co.jp> で私の求めたような
^^^^^^
|t + 1 / t| / 4 * sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2))
になります。
# 私の元の式では、右回りの時、半径が負 ^_^;
さらに些細なことですが、個人的には、T の表現は
- T = (t - 1 / t) / 2
のような感じの方が t を用いることで機械的に
同じ始点、終点、半径を持つ4つの円弧の区別が付くことが
分かって好きです。
tan((360 - x) / 4) = 1 / tan(x / 4) (x < 180)
# 他の CAD で用いられる中間ファイル形式 IGES,GERBER 等
# (DXF は元は中間ファイル形式じゃないか ^_^)
# はどういう仕組みなのか知りたくなった。
# けど明日から1週間は放浪の日々...
_________________________________________
/| SEIKO EPSON CO. Watch Design Dept. |\ /|
/@|<] Keiichiro Oguchi | X |
`>_|__oguchi.keiichiro@senet.ha.epson.co.jp_|/ \|
Technical Details
Message-ID:
<4st05p$6d9@epsongw.epson.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<2235@hstgwa.hst.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: f4956,67aecc74c3acdc9c X-Google-Attributes: gidf4956,public From: K.Oguchi <oguchi.keiichiro@senet.ha.epson.co.jp> Subject: Re: question about arc data representation (In Japanese/Kanji) Date: 1996/07/21 Message-ID: <4st05p$6d9@epsongw.epson.co.jp> X-Deja-AN: 169369792 distribution: fj references: <2235@hstgwa.hst.co.jp> content-type: text/plain; charset=ISO-2022-JP organization: SEIKO EPSON CO. mime-version: 1.0 newsgroups: fj.sci.math