คำถามติดแท็ก computational-geometry

23
จะตรวจสอบได้อย่างไรว่ารายการจุดรูปหลายเหลี่ยมเรียงตามเข็มนาฬิกาหรือไม่
มีรายการคะแนนฉันจะค้นหาว่าพวกเขาอยู่ในลำดับตามเข็มนาฬิกาได้อย่างไร ตัวอย่างเช่น: point[0] = (5,0) point[1] = (6,4) point[2] = (4,5) point[3] = (1,5) point[4] = (1,0) จะบอกว่ามันเป็นทวนเข็มนาฬิกา (หรือทวนเข็มนาฬิกาสำหรับบางคน)

12
อัลกอริทึมสำหรับการพอง / การยุบ (การชดเชยการบัฟเฟอร์) รูปหลายเหลี่ยม
ฉันจะ "ขยาย" รูปหลายเหลี่ยมได้อย่างไร นั่นคือฉันต้องการทำสิ่งที่คล้ายกับนี้: ความต้องการคือขอบ / จุดของรูปหลายเหลี่ยมใหม่ (พองตัว) นั้นอยู่ที่ระยะคงที่เท่าเดิมจากรูปหลายเหลี่ยมเก่า (ดั้งเดิม) (บนภาพตัวอย่างที่พวกมันไม่ได้ใช้, เนื่องจากมันจะต้องใช้ส่วนโค้งสำหรับจุดยอดที่สูงเกินจริง) ลืมเรื่องนั้นตอนนี้;)) ระยะทางคณิตศาสตร์สำหรับสิ่งที่ฉันกำลังมองหาเป็นจริงภายใน / ภายนอกรูปหลายเหลี่ยม offseting +1 ไปที่ balint เพื่อชี้สิ่งนี้ การตั้งชื่อที่เป็นทางเลือกรูปหลายเหลี่ยมบัฟเฟอร์ ผลการค้นหาของฉัน: นี่คือลิงค์บางส่วน: การสำรวจกลยุทธ์การหักล้างรูปหลายเหลี่ยม รูปหลายเหลี่ยมชดเชยปัญหา บัฟเฟอร์ข้อมูลรูปหลายเหลี่ยม

5
เรียงลำดับคะแนนตามเข็มนาฬิกาหรือไม่
กำหนดอาร์เรย์ของ x, y คะแนนฉันจะจัดเรียงคะแนนของอาร์เรย์นี้ตามลำดับตามเข็มนาฬิกา (รอบจุดศูนย์กลางเฉลี่ยโดยรวมของพวกเขา) ได้อย่างไร เป้าหมายของฉันคือการส่งคะแนนไปยังฟังก์ชั่นการสร้างบรรทัดเพื่อจบลงด้วยสิ่งที่ดูค่อนข้าง "แข็ง" เท่าที่จะเป็นไปได้โดยไม่ต้องมีการตัดกัน สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ Lua แต่โค้ดปลอมใด ๆ จะได้รับการชื่นชม อัปเดต:สำหรับการอ้างอิงนี่คือรหัส Lua ตามคำตอบที่ยอดเยี่ยมของ Ciamej (ไม่ต้องใส่คำนำหน้า "แอพ" ของฉัน): function appSortPointsClockwise(points) local centerPoint = appGetCenterPointOfPoints(points) app.pointsCenterPoint = centerPoint table.sort(points, appGetIsLess) return points end function appGetIsLess(a, b) local center = app.pointsCenterPoint if a.x >= 0 and b.x < 0 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.