数学问题::已知一个有序的点集,求该点集所产生图样的分析方法

悠兔 2006-04-28 09:33:45
点集数据文件,内容如下:
0.00000077.001601
0.12498577.004001
0.24996977.007201
0.37495477.010401
0.49993877.014401
0.62492377.018401
0.74990777.023201
0.87489277.028001
0.99987777.031201
1.12486177.036001
1.24984677.213601
1.37483077.204801
1.49981577.200801
1.62480077.200001
.................
可以根据其坐标点画出一个V型槽。

想请教各位:
一、想求出V型两条边的相交点的坐标。
二、这个V型画出来后怎样在知道一个圆的半径后,在V型中画出该圆呢?

谢谢啦,不够分再给。
...全文
126 点赞 收藏 5
写回复
5 条回复
悠兔 2006年05月09日
我找到一个图型控件。
回复 点赞
悠兔 2006年05月09日
感谢of123() ,虽然没有采用你给的方法。但给了我一个明确的思路,谢谢。
回复 点赞
悠兔 2006年04月29日
of123() 谢谢你的回答,无疑胜读十年书。包含知识面不小。
如果还没有人能回答我,差点就灰心放弃了。表示万分感谢!
另外再想请教:此点集数据要先用拟合直线画出两条边相交的点,但我在这块又卡壳了,可否指点指点。
回复 点赞
of123 2006年04月29日
当你找到顶点后,用 Line 方法,将它与两直线段的端点连接就是了。

如果你的 V 型槽图形可能包括表示上表面的直线段,在循环计算斜率时要多做一点工作:

1 首先将第一点作为 V 槽直线段的端点保存在一个数组元素中(也可以用一个类型变量)。

2 每两点连线的斜率与上一斜率比较,如果有一个较小的误差,就认为是同一直线,否则就是拐点。如果拐点处斜率符号相同,则是平面向 V 型槽的拐点,也就是 V 型槽一条直线段的端点。要将它赋值给前面说的那个变量。

3 找到斜率符号反转处的点,就是槽底顶点后,继续循环,如上找到另一条志线段的端点。赋值给另一个端点。

4 如果没有同号的拐点,最后一点就是端点。

自定义类型
Public Type Dot
x As Double
y As Double
End Type
回复 点赞
of123 2006年04月28日
计算机图形学的问题,实际实现的难度很大。只能给你一个思路:

一、想求出V型两条边的相交点的坐标。
1 循环进行,计算每两点连线的斜率。
2 比较当前斜率与上一个斜率。如果符号相同,继续。否则,经过了拐点。
这里分两种情况,
a 拐点就在点集中,这比较简单。
b 点集中不含拐点,通过前后两直线,求交点。

二、这个V型画出来后怎样在知道一个圆的半径后,在V型中画出该圆呢?
因为圆必然与直线相切,圆心一定在 V 槽角分线上,所以是一个解直角三角形的问题。
1 利用两直线的斜率求夹角。再求夹角的一半。
2 在直角三角形中,半夹角的对边就是圆的半径。通过顶角和一个直角对边求斜边的计算我相信你会。
3 在角分线上,从槽的顶点(就是所求拐点)到所求斜边的距离处,就是圆心所在。
回复 点赞
发动态
发帖子
VB基础类
创建于2007-09-28

2750

社区成员

19.7w+

社区内容

VB 基础类
社区公告
暂无公告