أكثر

كيف بالضبط يتم حساب النقطه الوسطى من المضلعات؟

كيف بالضبط يتم حساب النقطه الوسطى من المضلعات؟


أود أن أعرف بالضبط كيف تحسب أدوات QGIS Geometry -> النقطه الوسطى المضلع إحداثيات النقطة. على سبيل المثال ، هل يقسم حدود المضلع إلى نقاط صغيرة ، ويأخذ زوجان من نقطتين (الطول والعرض) مع أقصى مسافة ويأخذ تقاطع هذين الخطين على أنه النقطه الوسطى؟


إذا كان QGIS يحسب centroid باستخدام GEOS وهو منفذ JTS ، فإن الخوارزمية هي http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html. حول النظرية ، يوجد ارتباط في javadoc بـ http://www.faqs.org/faqs/graphics/algorithms-faq/ ، انظر القسم 2.02: كيف يمكن حساب النقطه الوسطى لمضلع ؟.

يمكن حساب النقط الوسطى (المعروف أيضًا باسم مركز الكتلة ، أو مركز الثقل) للمضلع على أنه المجموع المرجح للنقط المركزية لقسم المضلع إلى مثلثات. النقطه الوسطى للمثلث هو ببساطة متوسط ​​رءوسه الثلاثة ، أي لديه إحداثيات (x1 + x2 + x3) / 3 و (y1 + y2 + y3) / 3. هذا يشير أولاً إلى المثلث المضلع ، ثم تكوين مجموع النقطتين الوسطى لكل مثلث ، موزونة بمساحة كل مثلث ، المجموع الكلي مقيسًا بإجمالي مساحة المضلع. يعمل هذا بالفعل ، ولكن هناك طريقة أبسط: لا يلزم أن يكون التثليث قسمًا ، بل يمكن استخدام مثلثات موجبة وسالبة الاتجاه (مع المناطق الموجبة والسالبة) ، كما يتم استخدامه عند حساب مساحة المضلع. يؤدي هذا إلى خوارزمية بسيطة جدًا لحساب النقطه الوسطى ، استنادًا إلى مجموع النقط الوسطي المثلث الموزون بالمنطقة الموقعة. يمكن اعتبار المثلثات هي تلك التي تشكلها أي نقطة ثابتة ، على سبيل المثال ، الرأس v0 للمضلع ، ونقطتا النهاية للحواف المتتالية للمضلع: (v1 ، v2) ، (v2 ، v3) ، إلخ. المنطقة لمثلث برؤوسه أ ، ب ، ج هو نصف هذا التعبير: (ب [س] - أ [س]) * (ج [ص] - أ [ص]) - (ج [س] - أ [س] ) * (ب [ص] - أ [ص]) ؛

الكود متاح في ftp://cs.smith.edu/pub/code/centroid.c (3K). المرجع: [Gems IV] pp.3-6؛ يتضمن أيضًا التعليمات البرمجية.

يبدو لي أن الطريقة دقيقة. إذا كنت تريد التحقق من كيفية استخدام قيم الإحداثي وما إذا كان هناك أخطاء في التقريب وما إلى ذلك ، يمكنك إلقاء نظرة على الكود المصدري لـ JTS أو GEOS.


شاهد الفيديو: مساحة طبوغرافية 4 الترافرس المغلق