题目要求:
分割三角形的方法是从一个大的等边三角形开始,将其三边的中点进行连线,分成相同的四个三角形,除中间外的三个三角形再重复上述过程,直到满足给定条件的层次数为止.
(原贴地址: http://topic.csdn.net/u/20081126/19/ea2362d5-613a-464d-8567-0ac64ca858a2.html)
模块代码:
- Typepoint
-
xAsSingle
-
yAsSingle
-
EndType
-
Subdrawit(ByValdeepAsLong,ByRefpp1Aspoint,ByRefpp2Aspoint,ByRefpp3Aspoint)
-
Dimpp(2)Aspoint
- pp(0).x=(pp1.x+pp2.x)/2
- pp(0).y=(pp1.y+pp2.y)/2
- pp(1).x=(pp1.x+pp3.x)/2
- pp(1).y=(pp1.y+pp3.y)/2
- pp(2).x=(pp3.x+pp2.x)/2
- pp(2).y=(pp3.y+pp2.y)/2
-
Ifdeep=1Then
- Form1.ForeColor=QBColor(Int(Rnd*16))
-
Forj=0To2
-
Form1.Line(pp(j).x,pp(j).y)-(pp((j+1)Mod3).x,pp((j+1)Mod3).y)
-
Next
-
ExitSub
-
EndIf
-
Ifdeep>1Then
- drawit1,pp1,pp2,pp3
- drawitdeep-1,pp1,pp(0),pp(1)
- drawitdeep-1,pp2,pp(0),pp(2)
- drawitdeep-1,pp3,pp(2),pp(1)
-
EndIf
-
EndSub
窗体代码:
-
Dimp(2)Aspoint
-
PrivateSubForm_Load()
-
Me.AutoRedraw=True
- p(0).x=Rnd
- p(0).y=0
- p(1).x=0
- p(1).y=1
- p(2).x=1
- p(2).y=1
-
Me.Scale(0,0)-(1.1,1.1)
-
Me.Line(p(0).x,p(0).y)-(p(1).x,p(1).y)
-
Me.Line(p(1).x,p(1).y)-(p(2).x,p(2).y)
-
Me.Line(p(0).x,p(0).y)-(p(2).x,p(2).y)
-
EndSub
-
PrivateSubForm_Click()
- drawit5,p(0),p(1),p(2)
-
EndSub
运行效果:
分享到:
相关推荐
它通过将平面分割成一系列互不相交的三角形,有效地表示和处理二维空间中的数据。在这个上下文中,"三角网的VB源程序"指的是使用Visual Basic(VB)编程语言编写的代码,用于实现三角网的构建算法,特别是Delaunay...
这种分割方式在计算机图形学、地理信息系统、有限元分析等领域有广泛应用。 二、Delaunay三角剖分的类型 1. 基于边界的Delaunay三角剖分:从边界开始构建三角形网络。 2. 基于点的Delaunay三角剖分:从一个或多个...
这通常涉及到分割超大的三角形或将新点与相邻的三角形边连接。 5. **循环迭代**:这个过程会反复进行,直到所有需要考虑的点都被插入到TIN中,或者达到预设的精度标准。 6. **优化与简化**:为了提高效率和减少...
对于多边形,我们可以将其分割为多个三角形,每个三角形的面积都需要用到这个公式。 5. **循环与条件判断**: 在VB中,我们需要使用For...Next或While... Wend等循环结构遍历多边形的所有边,每次循环中根据当前边...
(229KB) 88,o001_spltbars.zip 利用该控件可以轻松地在你的应用程序中加入一个分割条(26KB) 89,dlinkacx.zip 在程序中在两个程序中进行数据的通信是一件很重要的事情,在本控件的范例中,当你打开两个...
(229KB) 88,o001_spltbars.zip 利用该控件可以轻松地在你的应用程序中加入一个分割条(26KB) 89,dlinkacx.zip 在程序中在两个程序中进行数据的通信是一件很重要的事情,在本控件的范例中,当你打开两个...
Delaunay三角剖分是一种数学方法,用于将一系列点集分割成互不相交的三角形,其中每个三角形的内切圆不包含任何其他点。这个过程在地理信息系统、计算机图形学和有限元分析等领域有着广泛应用。 首先,我们需要了解...
总的来说,将程序分割成过程是VB编程中的关键策略,它有助于代码的模块化,使程序更加清晰易懂,同时也便于调试和维护。通过合理地定义和调用Sub过程和Function过程,我们可以构建出高效且易于扩展的应用程序。在...
- **三角剖分(Triangulation)**:将多边形分割成三角形。 - **Voronoi图(Voronoi Diagrams)**:根据一组点划分平面。 - **最近点对查询(Nearest Neighbor Search)**:在一组点中查找距离某个点最近的点。 - **...
德罗内三角剖分是一种在二维空间中对点集进行分割的方法,它确保了每个三角形内部没有其他点,并且相邻三角形之间的共享边形成最大内角。这个算法在计算机图形学、地理信息系统和有限元素分析等领域有广泛应用。 ...
(229KB) 88,o001_spltbars.zip 利用该控件可以轻松地在你的应用程序中加入一个分割条(26KB) 89,dlinkacx.zip 在程序中在两个程序中进行数据的通信是一件很重要的事情,在本控件的范例中,当你打开两个...
- 基于规则格网的建模方法:通过规则格网将地形分割,每个网格存储一个高程值。 - 基于不规则三角形的建模方法:利用不规则分布的三角形来模拟地形,即本文研究的主要方法。 - 混合建模方法:结合规则格网和不规则...
- **谢尔宾斯基三角形**:通过递归地将正三角形分割成四个小三角形,然后去掉中间一个,形成自相似图案。 4. **VB实现分形算法的步骤**: - **初始化参数**:设置迭代次数、颜色规则、缩放比例等。 - **计算迭代...
Delaunay三角网的构建后,通过连接相邻三角形的对角线,可以得到泰森多边形。 2. **泰森多边形应用**:压缩包中的“泰森多边形应用--小区覆盖面积计算.docx”文件可能讲述了如何利用泰森多边形来计算服务设施(如...
托管DirectX是.NET框架下的一个库,它为开发者提供了更易于使用的接口,使得在C#、VB.NET等.NET语言中开发DirectX应用成为可能。 首先,我们需要理解3D物体拾取的基本原理。通常,这个过程包括两个主要步骤:屏幕到...
在正方体问题中,三棱锥B1BFE的体积可以通过等体积法解决,VB1BFE等于VEBFB1,计算可得体积为 ,因此选项C正确。 在等腰直角三角形旋转问题中,旋转轴不同会形成不同形状的几何体,可能是底面半径为1,高为1的圆锥...
10. 体积的分割法:在第四题中,将多面体的体积分为两个部分VB-ACFE和VD-ACFE进行计算,体现了体积问题中的分割思想。 以上就是从提供的文件内容中提炼出的立体几何相关知识点,这些知识点涵盖了立体几何的许多基础...
- 应用面积公式计算底面三角形面积:例如S△BCD = ×BC×CH,然后利用体积公式VB-CDM = VM-BCD = S△BCD × MM'来求解。 3. 平行线与垂直线的综合应用 - 证明线线平行:例如AB∥CD,利用线面平行的性质AB∥平面...
8. **正方体中的体积计算**:三棱锥B1BFE的体积可以通过等体积法计算,即VB1BFE=VEBFB1,结合正方体的性质和几何体的体积公式。 9. **旋转体的表面积**:等腰直角三角形绕直角边或斜边旋转一周会形成不同类型的旋转...