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

โครงสร้างข้อมูลและอัลกอริทึมที่เกี่ยวข้องกับเรขาคณิต

4
ฉันจะคำนวณเวกเตอร์ปกติของส่วนของเส้นได้อย่างไร
สมมติว่าฉันมีส่วนของเส้นตรงเริ่มจาก (x1, y1) ถึง (x2, y2) ฉันจะคำนวณเวกเตอร์ปกติตั้งฉากกับเส้นได้อย่างไร ฉันสามารถค้นหาสิ่งต่าง ๆ มากมายเกี่ยวกับการทำสิ่งนี้กับเครื่องบินในแบบ 3 มิติ แต่ไม่มีสิ่ง 2 มิติ กรุณาไปที่เรื่องง่าย ๆ ทางคณิตศาสตร์ (เชื่อมโยงไปยังตัวอย่างการทำงานไดอะแกรมหรืออัลกอริทึมยินดีต้อนรับ) ฉันเป็นโปรแกรมเมอร์มากกว่าฉันเป็นนักคณิตศาสตร์;)
177 math  geometry  vector 

6
วิธีการทำพล็อตกระจายกับวงกลมที่ว่างใน Python
ใน Python ด้วย Matplotlib พล็อตกระจายที่มีวงกลมว่างเปล่าจะถูกพล็อตได้อย่างไร เป้าหมายคือการวาดวงกลมที่ว่างเปล่ารอบ ๆดิสก์สีบางอันที่ได้วางแผนไว้แล้วscatter()เพื่อที่จะไฮไลต์โดยไม่ต้องวาดวงกลมสีใหม่ ฉันพยายามที่facecolors=Noneจะไม่มีประโยชน์

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 …

30
คุณจะคำนวณค่าเฉลี่ยของชุดข้อมูลวงกลมได้อย่างไร
ฉันต้องการคำนวณค่าเฉลี่ยของชุดข้อมูลแบบวงกลม ตัวอย่างเช่นฉันอาจมีหลายตัวอย่างจากการอ่านเข็มทิศ ปัญหาของหลักสูตรคือวิธีจัดการกับปัญหาที่เกิดขึ้น อัลกอริทึมเดียวกันอาจมีประโยชน์สำหรับหน้าปัดนาฬิกา คำถามจริงมีความซับซ้อนมากขึ้น - สถิติหมายถึงอะไรในทรงกลมหรือในพื้นที่พีชคณิตซึ่ง "ล้อมรอบ" เช่นกลุ่มเสริม mod n คำตอบอาจไม่ซ้ำกันเช่นค่าเฉลี่ยของ 359 องศาและ 1 องศาอาจเป็น 0 องศาหรือ 180 แต่สถิติ 0 ดูดีกว่า นี่เป็นปัญหาการเขียนโปรแกรมจริงสำหรับฉันและฉันพยายามทำให้มันดูไม่เหมือนปัญหาคณิตศาสตร์
147 algorithm  math  geometry 

12
การวาดวงกลมด้วยเส้นทางอาร์คของ SVG
คำถามสั้น ๆ : การใช้เส้นทาง SVG เราสามารถวาด 99.99% ของวงกลมและปรากฏขึ้น แต่เมื่อเป็น 99.99999999% ของวงกลมแล้ววงกลมจะไม่ปรากฏขึ้น จะแก้ไขอย่างไร? เส้นทาง SVG ต่อไปนี้สามารถวาดวงกลมได้ 99.99%: (ลองดูที่http://jsfiddle.net/DFhUF/1381/และดูว่าคุณเห็น 4 arcs หรือ 2 arcs เพียง 2 แต่โปรดทราบว่าถ้าเป็น IE มันจะเป็น แสดงผลใน VML ไม่ใช่ SVG แต่มีปัญหาที่คล้ายกัน) M 100 100 a 50 50 0 1 0 0.00001 0 แต่เมื่อมันเป็น 99.99999999% ของวงกลมแล้วไม่มีอะไรจะแสดงเลย? M 100 100 a …

18
อัลกอริทึมในการตรวจหาจุดตัดของสองรูปสี่เหลี่ยม?
ฉันกำลังมองหาอัลกอริทึมเพื่อตรวจสอบว่าสี่เหลี่ยมสองรูปตัดกันหรือไม่ ทดสอบว่ามุมหนึ่งอยู่ในอีก ALMOST หรือไม่ มันจะล้มเหลวถ้ารูปสี่เหลี่ยมสร้างรูปร่างคล้ายกากบาท ดูเหมือนว่าเป็นความคิดที่ดีที่จะหลีกเลี่ยงการใช้ความชันของเส้นซึ่งต้องใช้ตัวพิมพ์พิเศษสำหรับเส้นแนวตั้ง

9
ความแตกต่างที่เล็กที่สุดระหว่าง 2 Angles
กำหนดให้ 2 มุมในช่วง -PI -> PI รอบ ๆ พิกัดค่าของมุมที่เล็กที่สุดของ 2 มุมระหว่างทั้งสองมุมคืออะไร? คำนึงว่าความแตกต่างระหว่าง PI และ -PI ไม่ใช่ 2 PI แต่เป็นศูนย์ ตัวอย่าง: ลองนึกภาพวงกลมที่มีเส้น 2 เส้นออกมาจากจุดศูนย์กลางมีมุม 2 มุมระหว่างเส้นเหล่านั้นมุมที่ทำจากด้านในหรือที่เรียกว่ามุมที่เล็กกว่าและมุมที่ทำด้านนอกหรือที่เรียกว่ามุมที่ใหญ่กว่า มุมทั้งสองเมื่อรวมกันแล้วจะทำให้เป็นวงกลมเต็ม เนื่องจากแต่ละมุมสามารถปรับให้พอดีกับช่วงที่กำหนดได้ค่ามุมที่น้อยกว่าคือเท่าใดโดยคำนึงถึงการโรลโอเวอร์

13
จะบอกได้อย่างไรว่าจุดอยู่ทางด้านขวาหรือด้านซ้ายของเส้น
ฉันมีชุดของคะแนน ฉันต้องการแยกออกเป็น 2 ชุดที่แตกต่างกัน ในการทำเช่นนี้ฉันเลือกจุดสองจุด ( aและb ) แล้วลากเส้นจินตภาพระหว่างทั้งสอง ตอนนี้ฉันต้องการให้คะแนนทั้งหมดที่เหลือจากบรรทัดนี้ในชุดเดียวและคะแนนที่อยู่ตรงจากบรรทัดนี้ในอีกชุดหนึ่ง ฉันจะบอกจุดz ที่กำหนดได้อย่างไรว่าอยู่ทางซ้ายหรือในเซตด้านขวา? ฉันพยายามคำนวณมุมระหว่างazb - มุมที่เล็กกว่า 180 อยู่ทางด้านขวามือมากกว่า 180 ทางด้านซ้ายมือ - แต่เนื่องจากคำจำกัดความของ ArcCos มุมที่คำนวณจะมีขนาดเล็กกว่า 180 °เสมอ มีสูตรคำนวณมุมที่มากกว่า 180 ° (หรือสูตรอื่นให้เลือกด้านขวาหรือซ้าย) หรือไม่?
130 c#  math  geometry  convex-hull 

15
กระจาย n จุดบนทรงกลมอย่างเท่าเทียมกัน
ฉันต้องการอัลกอริทึมที่สามารถกำหนดตำแหน่งรอบ ๆ ทรงกลมสำหรับ N พอยต์ (อาจน้อยกว่า 20) ที่กระจายออกไปอย่างคลุมเครือ ไม่จำเป็นต้องมี "ความสมบูรณ์แบบ" แต่ฉันแค่ต้องการมันจึงไม่มีสิ่งใดมารวมกัน คำถามนี้ให้รหัสที่ดี แต่ฉันไม่สามารถหาวิธีสร้างเครื่องแบบนี้ได้เนื่องจากดูเหมือนจะสุ่ม 100% บล็อกโพสต์ที่แนะนำนี้มีสองวิธีในการป้อนจำนวนจุดบนทรงกลม แต่อัลกอริทึมSaff และ Kuijlaarsอยู่ในรหัส psuedocode ที่ฉันสามารถถอดเสียงได้และตัวอย่างโค้ดที่ฉันพบมี "node [k]" ซึ่งฉันทำไม่ได้ ดูอธิบายและทำลายความเป็นไปได้นั้น ตัวอย่างบล็อกที่สองคือ Golden Section Spiral ซึ่งทำให้ฉันได้ผลลัพธ์ที่แปลกประหลาดโดยไม่มีวิธีที่ชัดเจนในการกำหนดรัศมีคงที่ อัลกอริทึมจากคำถามนี้ดูเหมือนจะใช้งานได้ แต่ฉันไม่สามารถปะติดปะต่อสิ่งที่อยู่ในหน้านั้นเป็น psuedocode หรืออะไรก็ได้ คำถามอื่น ๆ อีกสองสามหัวข้อที่ฉันพบพูดถึงการกระจายสม่ำเสมอแบบสุ่มซึ่งเพิ่มระดับความซับซ้อนที่ฉันไม่กังวล ฉันขอโทษที่นี่เป็นคำถามโง่ ๆ แต่ฉันต้องการแสดงให้เห็นว่าฉันดูยากจริงๆและยังคิดสั้น ดังนั้นสิ่งที่ฉันกำลังมองหาคือ pseudocode ง่าย ๆ ที่จะกระจายจุด N ให้เท่า ๆ กันรอบ ๆ หน่วยทรงกลมซึ่งจะส่งกลับในพิกัดทรงกลมหรือคาร์ทีเซียน …

16
วิธีการคำนวณมุมจากสามจุด? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ บอกว่าคุณมีสิ่งนี้: P1 = (x=2, y=50) P2 = (x=9, y=40) P3 = (x=5, y=20) สมมติว่าP1เป็นจุดศูนย์กลางของวงกลม มันมักจะเหมือนกัน ฉันต้องการมุมที่ถูกสร้างขึ้นโดยP2และP3หรือในคำอื่น ๆ P1มุมที่อยู่ถัดไป มุมด้านในให้แม่นยำ มันจะเป็นมุมแหลมเสมอดังนั้นน้อยกว่า -90 องศา ฉันคิดว่า: ผู้ชายนั่นคือคณิตศาสตร์เรขาคณิตง่ายๆ แต่ตอนนี้ฉันมองหาสูตรมาประมาณ 6 ชั่วโมงแล้วและพบเพียงคนที่พูดถึงสิ่งที่ซับซ้อนของ NASA เช่น arccos และผลิตภัณฑ์สเกลาร์เวกเตอร์ หัวของฉันรู้สึกเหมือนอยู่ในตู้เย็น กูรูคณิตศาสตร์บางคนที่คิดว่านี่เป็นปัญหาง่ายๆ? ฉันไม่คิดว่าภาษาการเขียนโปรแกรมมีความสำคัญที่นี่ แต่สำหรับผู้ที่คิดว่ามันทำได้: java และ …
120 algorithm  math  geometry 

6
การคำนวณอย่างง่ายสำหรับการทำงานกับ lat / lon และ km distance?
มีการคำนวณง่ายๆที่ฉันสามารถทำได้หรือไม่ซึ่งจะแปลง km เป็นค่าที่ฉันสามารถเพิ่มลงใน lat หรือ lon เพื่อคำนวณกรอบขอบเขตสำหรับการค้นหาได้หรือไม่ ไม่จำเป็นต้องถูกต้องสมบูรณ์ ตัวอย่างเช่น: ถ้าฉันได้ lat / lon สำหรับลอนดอนประเทศอังกฤษ (51.5001524, -0.1262362) และฉันต้องการคำนวณว่าละติจูดจะอยู่ห่างจากจุดนั้นไปทางตะวันออก / ตะวันตก 25 กม. เท่าใดและพื้นที่จะเท่ากับ 25 กม. เหนือ / ใต้ จุดฉันต้องทำอะไรเพื่อแปลง 25 กม. เป็นทศนิยมเพื่อเพิ่มค่าด้านบน ฉันกำลังมองหากฎทั่วไปเช่น: 1km == +/- 0.XXX แก้ไข: การค้นหา "lat lon" เดิมของฉันไม่ได้ผลลัพธ์นี้: จะคำนวณกล่องขอบเขตสำหรับตำแหน่ง lat / lng ที่กำหนดได้อย่างไร คำตอบที่ยอมรับนั้นเพียงพอสำหรับความต้องการของฉัน


14
พื้นที่รวมของวงกลมที่ทับซ้อนกัน
ฉันเพิ่งเจอปัญหาที่ฉันมีวงกลมสี่วง (จุดกึ่งกลางและรัศมี) และต้องคำนวณพื้นที่ของการรวมกันของวงกลมเหล่านี้ ภาพตัวอย่าง: สำหรับวงกลมสองวงมันค่อนข้างง่าย ฉันสามารถคำนวณเศษส่วนของพื้นที่วงกลมแต่ละวงที่ไม่อยู่ในสามเหลี่ยมแล้วคำนวณพื้นที่ของสามเหลี่ยม แต่มีอัลกอริทึมที่ชาญฉลาดที่ฉันสามารถใช้ได้เมื่อมีวงกลมมากกว่าสองวงหรือไม่?
107 algorithm  geometry  area 

6
การวาดภาพเคลื่อนไหวของวงกลม
ฉันกำลังมองหาวิธีทำให้ภาพวาดของวงกลมเป็นภาพเคลื่อนไหว ฉันสามารถสร้างวงกลมได้ แต่มันรวมเข้าด้วยกัน นี่คือCircleViewชั้นเรียนของฉัน: import UIKit class CircleView: UIView { override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = UIColor.clearColor() } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func drawRect(rect: CGRect) { // Get the Graphics Context var context = UIGraphicsGetCurrentContext(); // Set the circle outerline-width …

9
การแปลงจากลองจิจูด \ ละติจูดเป็นพิกัดคาร์ทีเซียน
ฉันมีจุดพิกัดกลางโลกที่กำหนดให้เป็นละติจูดและลองจิจูด ( WGS-84 ) ฉันจะแปลงเป็นพิกัดคาร์ทีเซียน (x, y, z) โดยมีจุดเริ่มต้นอยู่ที่ใจกลางโลกได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.