Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
doductiep

Lisp - Xác định điểm Point nằm bên trái hay phải Pline

Các bài được khuyến nghị

Như tiêu đề, em có 1 điểm Point và 1 Polyline, nhờ các a/c giúp đỡ viết code-lisp để xác định điểm đó nằm bên trái hay phải Pline (theo hướng của pline)

Xin cảm ơn!

Ghi chú bài toán: luôn tồn tại 1 đường thẳng đi qua point  và vuông góc với pline

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
39 phút trước, alisp đã nói:

Bạn search "Lee Mac clockwise-p"

Cảm ơn bạn. Tuy nhiên cái này chưa đúng yêu cầu hoặc mình chưa biết cách áp dụng

Câu hỏi này mình đã hỏi trên The swamp, @Lee - Mac cũng đưa ra trả lời nhưng là cho Point và đường thẳng chứ không phải Pline.

 

Capture.thumb.JPG.68a574ffe7f995a41af48590cdc4ed3e.JPG

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thí dụ như vầy:

;; Clockwise-p  -  Lee Mac
;; Returns T if p1,p2,p3 are clockwise oriented

(defun LM:Clockwise-p ( p1 p2 p3 )
    ((lambda ( n ) (< (car (trans p2 0 n)) (car (trans p1 0 n)))) (mapcar '- p1 p3))
)

(defun c:test()
	(setq pl (car (entsel "\nPolyline:"))
				p3 (getpoint "\nPoint")
				p2 (vlax-curve-getclosestpointto pl p3)
				p1 (vlax-curve-getpointatparam pl (fix (vlax-curve-getparamatpoint pl p2)))
				clockwise (LM:Clockwise-p p1 p2 p3))				
)
      

Nếu T thì p3 ở bên phải của pline và ngược lại.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×