Đến nội dung


Hình ảnh
- - - - -

Chia 1 đa giác thành 2 diện tích khác nhau theo yêu cầu


  • Please log in to reply
9 replies to this topic

#1 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 16 September 2007 - 09:44 PM

Xin các anh trong diễn đàn giúp tôi file lisp tiện ích chia 1 tứ giác hoặc đa giác thành 2 phần P1 và P2 có diện tích khác nhau theo yêu cầu với đường ranh giới cho trước. Thanks
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 16 September 2007 - 09:46 PM

Xin các anh trong diễn đàn giúp tôi file lisp tiện ích chia 1 tứ giác hoặc đa giác thành 2 phần P1 và P2 có diện tích khác nhau theo yêu cầu với đường ranh giới cho trước. Thanks

"theo yêu cầu" tức là thế nào?
anh Bảo hãy giải thích rõ hơn!
  • 0

#3 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 17 September 2007 - 06:30 AM

"theo yêu cầu" tức là thế nào?
anh Bảo hãy giải thích rõ hơn!


có 1 thửa đất (hình tứ giác hoặc đa giác) nay tôi cần chia theo yêu cầu thành 2 phần khác nhau, P1 có diện tích = x, P2 có diện tích = y theo 1 đường ranh giới bất kỳ chỉ định cho trước (đường ranh giới này sẽ tịnh tiến khi thỏa điều kiện P1= x, P2= y) với autolisp có thuật toán nào để thực hiện việc này không anh Hoành
  • 0

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 17 September 2007 - 08:18 AM

có 1 thửa đất (hình tứ giác hoặc đa giác) nay tôi cần chia theo yêu cầu thành 2 phần khác nhau, P1 có diện tích = x, P2 có diện tích = y theo 1 đường ranh giới bất kỳ chỉ định cho trước (đường ranh giới này sẽ tịnh tiến khi thỏa điều kiện P1= x, P2= y) với autolisp có thuật toán nào để thực hiện việc này không anh Hoành

theo 1 đường ranh giới bất kỳ chỉ định cho trước?

Đã bất kỳ rồi sao lại chỉ định cho trước?

Có phải là đường ranh giới sẽ song song với một đường thẳng cho trước không?
Có phải bài toán: Cho một đa giác, hãy cắt đa giác này bằng một đường thẳng song song với một đường thẳng cho trước. Sao cho tỷ lệ diện tích của hai miền sau khi cắt là k? Nếu như thế thì đây cũng là một bài toán khó.
  • 0

#5 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 17 September 2007 - 10:48 AM

Đã bất kỳ rồi sao lại chỉ định cho trước?

Có phải là đường ranh giới sẽ song song với một đường thẳng cho trước không?
Có phải bài toán: Cho một đa giác, hãy cắt đa giác này bằng một đường thẳng song song với một đường thẳng cho trước. Sao cho tỷ lệ diện tích của hai miền sau khi cắt là k? Nếu như thế thì đây cũng là một bài toán khó.


vâng đúng như anh diễn giải
  • 0

#6 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 17 September 2007 - 10:56 PM

vâng đúng như anh diễn giải

Sau một thời gian suy nghĩ cật lực thì tôi có câu trả lời là: bó tay. Bài toán quá khó với tôi.
  • 0

#7 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 253 (khá)

Đã gửi 18 September 2007 - 09:18 AM

vâng đúng như anh diễn giải


Đây là một bài tóan cực khó nhưng không phải là không thể làm được.
1. Cần biết thửa đất được border theo lọai đường nào?
2. Xác định 2 giao điểm của đường thẳng chia đôi thửa đất với đường border (theo một quan hệ...)
3. Tính lại Diện tích hai thửa...
Dự đóan bài này 3 man-days (đã có thuật tóan)
  • 0

#8 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 253 (khá)

Đã gửi 18 September 2007 - 09:24 AM

vâng đúng như anh diễn giải


Đây là một bài tóan cực khó nhưng không phải là không thể làm được.
1. Cần biết thửa đất được border theo lọai đường nào (đề nghị chuyển thành PolyLine)?
2. Xác định 2 giao điểm của đường thẳng chia đôi thửa đất với đường border (theo một quan hệ...)
3. Tính lại Diện tích hai thửa...
Dự đóan bài này 3 man-days (đã có thuật tóan)
  • 0

#9 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 18 September 2007 - 10:22 PM

Đây là một bài tóan cực khó nhưng không phải là không thể làm được.
1. Cần biết thửa đất được border theo lọai đường nào (đề nghị chuyển thành PolyLine)?
2. Xác định 2 giao điểm của đường thẳng chia đôi thửa đất với đường border (theo một quan hệ...)
3. Tính lại Diện tích hai thửa...
Dự đóan bài này 3 man-days (đã có thuật tóan)


cảm ơn các anh đã quan tâm.
  • 0

#10 dangbaoduy1982

dangbaoduy1982

    biết zoom

  • Members
  • Pip
  • 17 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 20 September 2009 - 10:40 AM

(vbao @ Sep 16 2007, 09:44 PM)
Xin các anh trong diễn đàn giúp tôi file lisp tiện ích chia 1 tứ giác hoặc đa giác thành 2 phần P1 và P2 có diện tích khác nhau theo yêu cầu với đường ranh giới cho trước. Thanks



Dùng thuật toán tìm kiếm nhị phân. Ví dụ Chia đa giác lồi DGL thành hai miền có tỉ lệ diện tích cho trước theo đường thẳng đứng với sai số cho trước (ds)
Xác định điểm nằm trong đa giác.
Tính diện tích đa giác với điểm trong đa giác đó(Tham khảo lisp tính dt đa giác bằng cách pick)
Từ tỷ lệ dt => dt S1: phía trái đường thẳng đứng.

Gọi diện tích phía trái đường thẳng đứng là S1p.
Tìm hai đỉnh đa giác có Xmin và Xmax(hai điểm có khoảng cách xa nhất về hai phía của đường chia đa giác).
Vòng lặp:
B1:Tạo đường ranh giới X = 1/2(Xmin+Xmax).
B2:Xác định điểm nằm trong đa giác về phía trái đường ranh giới.
B3:Tính diện tích S1p.
-Nếu S1p < S1 và |S1p - S1| > ds:
Thiết lập lại Xmin là đường phân tách đa giác, trở về B1
-Nếu S1p > S1 và |S1p - S1| > ds:
Thiết lập lại Xmax là đường phân tách đa giác, trở về B1
-Trường hợp còn lại |S1p - S1| <= ds:
Thoát vòng lặp.
X:chính là đường phân tách thẳng thẳng đứng chia đa giác thành hai miền có tỷ lệ cho trước.
  • 0