(defun ufb00009 ( u_p1 ;線分の始点 u_p2 ;線分の終点 u_pc ;左右どちらにあるか判定する点 u_eps ;許容誤差 u_epe ;許容誤差(規格化用) / fout ;0:延長を含める線分上、1:右側、2:左側 ; nil:判定ができない vv ww vx vy wx wy ss ) ;指定点が線分の左右どちらにあるか判定する (setq fout nil) (setq vv (ufb00001 u_p1 u_p2 u_eps)) (setq ww (ufb00001 u_p1 u_pc u_eps)) (if (and (/= vv nil) (/= ww nil)) (progn (setq vx (car vv)) (setq vy (cadr vv)) (setq wx (car ww)) (setq wy (cadr ww)) (setq ss (- (* vx wy) (* vy wx))) (setq fout 1) (if (> ss 0.0) (setq fout 2) ) (if (< (abs ss) u_epe) (setq fout 0) ) ) ) fout )