AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
数学とCAD 円と円の交点計算
高校数学の基礎(6)で少し書きましたが、ここではもう少し詳しく記述しておきます。
 
円と円の交点計算をするのに連立方程式を解く場合、双方とも2次式であるため、連立方程式を解くのも一苦労してしまいます。ここでも回転写像を利用して解く事を考えます。
@まず、2円の中心点を結ぶ直線を考え、その傾き角度を算出します。
 
A := ArcTan2(y2-y1,x2-x1);
A点(x1,y1)を中心に角度A分、逆回転したと考えます。
(x2,y2)の回転後が(x2',y2')
です。
 
B円の中心点間距離dを計算します。
  距離d=|x2'−x1|
このdが円の半径(r1+r2)に等しい場合は、2円は接する事になり、(r1+r2)よりも小さい時には2交点、(r1+r2)よりも大きい時は交点無し、となります。
また、dが|r1−r2|に等しい場合は、2円は内接する事になり、|r1−r2|よりも小さい時は交点無しとなります。同心円の場合(d=0)も交点無しとなります。
 
C接する場合(1交点である場合)、r1≧r2 ならば (x1+r1,y1)、r1<r2 ならば (x1+d-br,y1)となります。
2交点の場合には、
 A+B=d、A2+h2=r12、B2+h2=r22
これより、
 A2−B2=r12−r22
 A2−(d−A)2=r12−r22
 A2−(d2−2dA+A2)=r12−r22
 −d2+2dA=r12−r22
 2dA=d2+r12−r22
 A=(d2+r12−r22)/2d
 h=√(r12−A2)
となりますので、交点は、
 (x1+A,y1±h)
となります。
D接点又は交点を
点(x1,y1)を中心に角度A分、回転した点の座標が、求める点となります。
 
回転写像は、
cosθ -sinθ) θ:回転角
sinθ cosθ
つまり
  x'=x×cosθ−y×sinθ
  y'=x×sinθ+y×cosθ
ですが、これは中心(0,0)での回転ですので、点(x0,y0)を中心に回転する場合には、
  x'=x0+(x−x0)×cosθ−(y−y0)×sinθ
  y'=y0+(x−x0)×sinθ+(y−y0)×cosθ
となります。
 
TEST014
 <ソースDownLoad>
回転写像を利用して、2円の交点を表示する簡単なサンプルプログラムです。絵は、TImageを配置して、そこに描きます。10ドットを1単位とします。
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
 ▲PREV
 ▼NEXT
CAD作ろ!
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.