Sds inters

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年12月28日 (月) 14:33時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成: ; 構文 : int sds_inters (const sds_point point1, const sds_point point2, const sds_point point3, const sds_point point4, int mode, sds_point interspt); ; 機能 : 2 本の…)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
int sds_inters (const sds_point point1, const sds_point point2, const sds_point point3, const sds_point point4, int mode, sds_point interspt);


機能
2 本の線分の交点を検出する。
point1、point2 が最初の線。point3、point4 が次の線。
引数
  • point1 ~ 4 : 点
  • mode : モード 0=実際に交差している必要はない、1=実際に交差していなければならない。
  • interspt : 交差点
戻り値
交差していれば RTNORM、交差していなければ RTERROR。
* モードが1 で線分が交差しないときは RTERRORを返す。
サンプル
int cross;
cross = 1;
sds_point firstpt,secondpt,thirdpt,fourthpt,interspt;
sds_getpoint(NULL,"\n線分1の最初の点: ",firstpt);
sds_getpoint(firstpt,"\n2点目: ",secondpt);
sds_getpoint(NULL,"\n線分2の最初の点: ",thirdpt);
sds_getpoint(thirdpt,"\n2点目 : ",fourthpt);
returni=sds_inters(firstpt,secondpt,thirdpt,fourthpt,cross,intpt);

if (returni != 5100)
  sds_printf("\n交点はありません。");
if (returni == 5100)
  sds_printf("\n交点座標 : (%f,%f,%f)", intpt[0],intpt[1],intpt[2]);