autolisp:判断一个四边形的凹凸性

(defun c:convex()
    (setq p1(getpoint"\n input p1:"))
  (setq p2(getpoint"\n input p2:"))
  (setq p3(getpoint"\n input p3:"))
  (setq p4(getpoint"\n input p4:"))
  (setq p1x (car p1)
      p1y (cadr p1)
      p2x (car p2)
      p2y (cadr p2)
      p3x (car p3)
      p3y (cadr p3)
      p4x (car p4)
      p4y (cadr p4)
      )
     (setq t1 (- (* (- p4x p1x) (- p2y p1y)) (* (- p4y p1y) (- p2x p1x))))
     (setq t2 (- (* (- p1x p2x) (- p3y p2y)) (* (- p1y p2y) (- p3x p2x))))	  
     (setq t3 (- (* (- p2x p3x) (- p4y p3y)) (* (- p2y p3y) (- p4x p3x))))
     (setq t4 (- (* (- p3x p4x) (- p1y p4y)) (* (- p3y p4y) (- p1x p4x))))
     (setq k (* (* t1 t2) (* t3 t4)))


    (if(< k 0)
      (print "凸边形")
      (print "凹边形")
      )
    
    (princ)
	   )
  ;判断图形是凹凸边形

版权声明:本文为weixin_43682372原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。