乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 42|回复: 1

中心点

[复制链接]
b_e

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2003-3-31 10:55:00 | 显示全部楼层 |阅读模式
怎样计算一个多边形的中心点?
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
286
发表于 2003-3-31 16:04:00 | 显示全部楼层
如果你想知道的仅仅是正多边形的中心点位置,这很容易,若边数是奇数,中心点是这样两条线的交点:它们是多边形顶点到相对边垂线。若边数是偶数,两对相对顶点连线的交点就是中心点。
对于一般的多边形,中心点的计算方法有几种,但都比较麻烦。下面介绍的两个算法实际上都可以应用于任何2D图形的中心点计算。
算法1。该算法基于这样两个数学定理:
1、在任意指定的一个方向上,有且仅有一条直线将指定的闭合区域分成两个面积相等的部分。可用极限理论中的“夹逼定理”。具体证明略。
2、在两个不同方向上得到的上述两条直线的交点就是闭合区域的重心位置。要严格证明它,我同样也未找初等方法,要用到比较复杂的微积分知识。不过可以从重心的物理意义出发理解它。
算法1也就是通过尝试找到这样两条直线(或近似值)。这个方法对于不太熟悉微积分的朋友相对容易理解,但实际编程时要多次计算和比较区域的面积,并且在得到将区域分成面积相等的两块的直线过程中,大概要通过递归的方法逐步逼近正确值,运行效率很低。
算法2直接利用数学中重心坐标计算公式,利用微积分方法计算。
中心点X坐标为:xdxdy在区域上的二重积分/区域面积。
Y坐标为:ydxdy在区域上的二重积分/区域面积。
积分的计算就用矩形逼近求和的方法,或辛普森方法(如果你对精度要求很高的话)。
当然,针对具体的问题可能(应该几乎可以肯定)有更高效的算法。那么就需要你对具体问题准确描述。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 08:09 , Processed in 0.534045 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表