明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lichh_2003

请教:求一个闭合区域的几何中心?

    [复制链接]
发表于 2006-10-30 20:19 | 显示全部楼层

那就参考下,vla-getboudingbox 这个函数,这个肯以求得,它是先求出最大和最小值,然后将中心点求出

发表于 2006-10-30 21:14 | 显示全部楼层
10楼所说的型心不知道有何用途?它究竟作何定义,我所知道的在VBA中应该没有型心这样的属性!
发表于 2006-10-30 21:26 | 显示全部楼层
其实在很多情况下,多边形的质心都会位于它的外形外面,就象一个物体的重心一样有时也会落在它自身的外面!
发表于 2006-10-31 11:04 | 显示全部楼层
请问楼上,我在cad里只有一个图形的时候,你的程序能用,只要有第二个就出错,错误是:ActiveX服务器返回错误: 未知名称: Centroid,这是怎么回事?
发表于 2006-10-31 19:39 | 显示全部楼层
这是因为只有region,才有属性Centroid!
发表于 2006-11-1 18:01 | 显示全部楼层

你给的程序有点问题,可不解答一下,就是如果闭合,第一个程序能用,如果不必合,第二个能用,但是只要反过来,一定出错,提示错误是:ActiveX服务器返回错误: 未知名称: Centroid,或者错误是:ActiveX服务器返回错误: 未知名称: Centroid,这是怎么回事?

发表于 2006-11-2 19:32 | 显示全部楼层
建面域就可以了。不过要是大量的计算就很慢。呵……我以前也这么做。现在我将其转成多边形。用一个简单的算法就能算出来。
发表于 2006-11-3 17:41 | 显示全部楼层

to tcsl9621 你说的建面域的方法我也用了 不过只能求出面域的中心,但是有可能跑到多边形外面去了,到底怎么求形状的中心,保证它在多边形内部??

发表于 2006-11-9 10:46 | 显示全部楼层

形状的中心就是质心。没有什么形状的中心,你可以在求出质心后再将此点向左或右移动一定距离到图形内部不就可以了。

你可以将移动步长设为1mm。每移动一次在那建一个直径为1mm的圆形面域。用原面域布尔减动小圆面域,如果面积比原面积小了就在内部,否则就在处部。很容易实现。对于数据结构和计算机图形学不是很熟悉的同志是个好方法。就是有点慢,但能够忍受。

发表于 2006-11-10 11:42 | 显示全部楼层

我也想知道怎么求出多边形的所谓的形心,就是一定是在多边形之内,因为我现在想计算多边形的面积,然后把面积标注在多边形的形心之内,这样就比较好看一点!

19楼所说的:你可以将移动步长设为1mm。每移动一次在那建一个直径为1mm的圆形面域。用原面域布尔减动小圆面域,如果面积比原面积小了就在内部,否则就在处部。很容易实现。对于数据结构和计算机图形学不是很熟悉的同志是个好方法。就是有点慢,但能够忍受。

 

可不可以给个例子具体介绍一下啊?好象很深奥的说!

 

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-28 03:32 , Processed in 0.243839 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表