找回密码
 注册
Simdroid-非首页
查看: 305|回复: 3

在vb里怎么画出实三角形?

[复制链接]
发表于 2005-9-4 09:40:01 | 显示全部楼层 |阅读模式 来自 河南郑州
我想在vb里画出实三角形,也就是想给三角形填充,我看到书上说可以给四边形填充,可是没有说怎么给三角形填充呀!请多多指点!
发表于 2005-10-17 11:55:54 | 显示全部楼层 来自 广西桂林

Re:在vb里怎么画出实三角形?

Simdroid开发平台
使用Picturebox对象没有专门的方法,只有自己定义一功能函数,函数入口参数为三角形三个顶点的坐标,在函数中用由三角形最左顶点向最右顶点扫描,求出各纵垂线与三角形的边的两个交点,然后画出每条三角形内的纵垂线.
这方法笨是笨点,我原来也是苦于没招,才使用这个办法,在不要求图形显示速度情况下还是挺管用的.
发表于 2005-11-8 01:35:26 | 显示全部楼层 来自 同济大学

Re:在vb里怎么画出实三角形?

使用API函数绘制吧。示例代码如下,相关的函数和类型声明可以在APIViewer里面找到。

Dim Points() As POINTAPI,NCount As Integer
Dim FillMode As Long
Dim hBrush As Long, hOldBrush As Long
Dim OldFillMode As Long
   
hBrush = CreateSolidBrush(RGB(255, 255, 0))
hOldBrush = SelectObject(Me.hDC, hBrush)
OldFillMode = SetPolyFillMode(Me.hDC, FillMode)
        
Polygon Me.hDC, Points(0), NCount
        
SetPolyFillMode Me.hDC, OldFillMode
SelectObject Me.hDC, hOldBrush
DeleteObject hOldBrush
发表于 2005-12-10 11:10:10 | 显示全部楼层 来自 重庆

Re:在vb里怎么画出实三角形?

sdh142857 wrote:
使用Picturebox对象没有专门的方法,挥凶约憾ㄒ逡还δ芎?????肟诓问???切稳?龆サ愕淖?辏?诤??杏糜扇?切巫钭蠖サ阆蜃钣叶サ闵?瑁?蟪龈髯荽瓜哂肴?切蔚谋叩牧礁鼋坏悖?缓蠡?雒刻跞?切文诘淖荽瓜撸?这方法笨是笨点,我原来也是苦于没招,才使用这个办法,在不要求图形显示速度情况下还是挺管用的.
这个办法是最好的api并不快,而且使用起来复杂,容易出错。
另外说明一点,要用api得到屏幕的像素数,然后按像素来扫描。可以加速。
如果想更快,把drawwaith给为比较大的值然后增加步长。如果是相同的颜色,不妨用" line"来实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 21:39 , Processed in 0.032645 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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