MicroCity——质心法求几何中心

本文介绍了如何在MicroCity环境中使用质心法计算平面和三维对象的重心,通过遍历对象的顶点坐标,求和并除以数量得到质心。同时,展示了如何将国家名称标签放置在国土面积质心位置,以实现均衡和中心化的布局。
摘要由CSDN通过智能技术生成

#质心法#

  在几何学中,质心法是找出平面多边形或空间多面体的几何中心的方法。质心,或重心,是一个几何对象所有点位置向量的平均值。对于一个由多个顶点组成的平面图形,质心的坐标是所有顶点坐标的算术平均。更形象地,质心是一个物理模型在重力作用下能平衡支撑的点,若我们假想在此点支撑整个形状,它将保持平衡。直观上,质心可以视为形状的“中心”,但并非总是与形状的几何中心相符合,除非该形状是均质的。计算质心在解决静力学问题、设计结构以及艺术创作中构图时都非常有用。在更高级的应用中,如使用曲线和曲面时,计算质心可能需要使用积分法来考虑物体的连续质量分布。

质心法在MicroCity中如何运用

设置相机为正交投影

scene.setenv({camtype='ortho'})

遍历每个国家

设定 obj 为一个包含多个子对象的集合 对于每一个子对象(即 country),在 obj 集合中进行以下操作: 初始化点的数量 pointCount 为 0 初始化三个坐标轴上的总和(cxSum,cySum,czSum)为 0 获取 country 对象的所有坐标点 对每个坐标点进行迭代,将其坐标值(x, y, z)加到对应的总和变量(cxSum, cySum, czSum)上 同时将点的数量 pointCount 增加 计算质心坐标,方法是把每个坐标轴的总和变量(cxSum, cySum, czSum)分别除以点的数量 pointCount 这将给出质心的 x, y, z 坐标 将计算得到的质心坐标存储或者输出,以便后续使用或分析

获取土地的顶点坐标

for i, country in ipairs(obj:getchildren()) do

计算质心坐标

质心(又称重心)是一个几何对象上所有点的平均位置。对于一组离散的点,可以通过将所有点的坐标分别求和然后除以点的总数来找到质心的坐标。

对于三维空间中的质心,你需要计算X、Y和Z坐标的平均值。首先,分别计算所有点X坐标的和、所有点Y坐标的和以及所有点Z坐标的和。接下来,将每个坐标和除以点的数量,得到各个坐标轴的平均值。这三个平均值(X、Y和Z)就构成了三维空间中质心的坐标。

例如,如果你有一组点,每个点都有X、Y和Z三个坐标值,你首先将所有点的X坐标加起来得到X总和,同理得到Y总和和Z总和。如果你有N个点,那么质心的X坐标是X总和除以N,Y坐标是Y总和除以N,Z坐标是Z总和除以N。这样计算得到的点(质心的X坐标,质心的Y坐标,质心的Z坐标)就是整个点集的平均位置,即质心。

将需要的东西放在质心上

例如将国家名称放到中心处

创建一个标签对象,并设置其文本为 data['NAME'],颜色为黑色,大小为 2 将标签对象设置到位置 (centerX, centerY, centerZ)。将国家的名字放在国土面积的质心处。

要将所需标签放置到质心上,您首先需要计算组成对象的所有点的质心坐标。这包括单独对X、Y和Z轴上的所有点坐标求和,然后将每个和除以点的总数来获取平均坐标。计算出的这个坐标点(X平均,Y平均,Z平均)即表示质心的位置。

一旦质心坐标计算完成,你需要创建一个带有所需文本的标签对象。接着,你将这个标签的位置属性设置为质心的坐标。这样做将使标签正好出现在组成对象的所有点的平均位置上,即质心所在的位置。这种方法适用于多个点形成的物体,无论是在二维空间还是三维空间中。标签的文字可以代表该物体的名称或任何相关信息,而放置在质心上可以使这些信息的展示更为均衡和中心化。

注:

以上理解,仅供参考,望在Microcity中学习代码的同学们能够独立完成任务。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值