翔羽 发表于 2005-4-24 15:37:00

[VBA]算法请教

举个最简单的例子。在Autocad主界面下有下图:


<IMG align=baseline alt="" border=0 hspace=0 src="file:///C:/Documents%20and%20Settings/zxm/桌面/未命名.bmp">


如图,共有九个矩形,每个矩形都是由四根直线围成的,图形中有a,b,c,d四根直线。现在的问题是:现在<FONT color=#f70909>随机</FONT>从图形中选择a,b,c,d四根直线中的一条,然后通过offset命令上下或者是左右平移该直线(横向的直线上下移动的距离和纵向的直线左右移动的距离都不大,平移的距离是<FONT color=#f70938>随机</FONT>的)时,用VBA怎样编程立即得到与该直线相关联的矩形的面积和中心(例如,当选择直线a时,1,2,4,5,7,8六个矩形都与此直线<FONT color=#ff0000>相关联</FONT>,当把a左右移动一小段距离时,对应1,2,4,5,7,8六个矩形的面积和中心均发生变化)?


       我现在正在想这样的问题,首先遇到的问题是:


        1.这九个矩形都是由四条直线围成的,在VBA中怎样定义这九个矩形?


        2.当任意选择a,b,c,d四根直线中的一条时,怎样立即判断并得到与这条直线相关联的六个矩形?


3.怎样动态的立即得到平移后这九个矩形的长,宽,面积,中心(在平移前,这九个矩形长,宽,面积,中心等属性已经自动生成属性文件,在平移后,怎样立即更新这九个矩形长,宽,面积,中心等属性文件)?


这些问题困扰我很长时间了,具体用VBA代码怎么样实现?


由于是毕业设计,时间很紧急,请斑竹,各位大虾多多帮忙,谢谢~~

翔羽 发表于 2005-4-24 15:42:00

不知道为什么,上面的图像为BMP格式的显示不出来,现在给出其jpg格式的


<IMG align=baseline alt="" border=0 hspace=0 src="file:///C:/Documents%20and%20Settings/zxm/桌面/aaa.jpg">

翔羽 发表于 2005-4-24 15:45:00

上传此jpg图形,请大家多帮忙~~

翔羽 发表于 2005-4-24 15:51:00

上图中最上面还有一条直线没有显示出来。


<IMG align=baseline alt="" border=0 hspace=0 src="file:///C:/Documents%20and%20Settings/zxm/桌面/bbbb.jpg">

翔羽 发表于 2005-4-24 15:54:00

好了,现在第三楼显示的是正确的了,请各位多多给出意见和代码~~十分感谢~~

翔羽 发表于 2005-4-24 18:43:00

怎么没有人指点啊~~

雪山飞狐_lzh 发表于 2005-4-25 08:29:00

按坐标判断

翔羽 发表于 2005-4-26 16:06:00

请问斑竹,按坐标判断怎么判断?能不能给出一个参考例子?这用VBA实现起来困难不?有没有更好的实现方法?谢谢

雪山飞狐_lzh 发表于 2005-4-26 20:41:00

?这没有什么技巧可言,代码应该很简单,你先试着写写吧

cbse_smy 发表于 2005-5-6 16:18:00

本帖最后由 作者 于 2005-5-7 17:12:24 编辑

您的意思,我不是太明白。


不过我认为可以这样解决。首先矩形可以用其四个角的坐标来表示。选中每一直线时,可以遍历所有矩形的四个顶点,若某一矩形有两个顶点在此直线上,则该矩形与此直线相关联。当平移直线时亦可以计算出此直线上点的变化,从而计算出新的矩形的面积和中心。
页: [1] 2
查看完整版本: [VBA]算法请教