急,计算机图形学相关,给100分

neowang 2003-01-03 05:47:29
小弟最近为此焦头烂额,下周一就要交差了,但至今没有什么头绪,主要是对vb不熟。
问题是:
1.在窗体上用鼠标画直线(要求有橡皮筋的效果)
2.在窗体上用鼠标画圆(要求有橡皮筋的效果)
3.多边形的裁剪
4.多边形的填充
顺便想问一下vb里面的开平方函数是不是sqrt(x)啊,怎么我的vb老是说找不到这个过程或是函数呢?
望各位大虾指教,感激不尽!!!
...全文
浏览 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
agua06 2003-01-04
我来贴一个使用橡皮筋效果画任意多边形的例子把。不过这个程序是我3年前刚上班的时候写的,所以比较简陋

Public x1, y1, i, c As Integer 'i为绘画标志,c为绘画完成后的清屏标志
Public newX, newY, oldX, oldY As Integer 'oldX,oldY为最初的点坐标,newX,newY为最后一次的坐标定位

Private Sub Form_DblClick()
Form1.AutoRedraw = True
Line (oldX, oldY)-(newX, newY) '双击闭合曲线
i = 0
c = 1
End Sub

Private Sub Form_Load()
i = 0
c = 0
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If c = 1 Then
Form1.Cls
c = 0
End If
PSet (X, Y) '画初点
x1 = X
y1 = Y
i = i + 1 '设置初始标志

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 0 Then '如果无鼠标键按下,画线
If i >= 2 Then '过程画线
Form1.AutoRedraw = False
Form1.Refresh
Line (newX, newY)-(X, Y)
End If
If i = 1 Then '初次画线
Form1.AutoRedraw = False
Form1.Refresh
Line (x1, y1)-(X, Y)
oldX = x1
oldY = y1
i = i + 1
End If
End If
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'画下最终确定的直线
If i = 1 Then '初次画线
Me.DrawMode = 13
Me.AutoRedraw = True
Line (x1, y1)-(X, Y)
newX = X
newY = Y
End If

If i >= 2 Then '过程画线
Me.DrawMode = 13
Me.AutoRedraw = True
Line (newX, newY)-(X, Y)
newX = X
newY = Y
End If
End Sub
回复
wzn0521 2003-01-04
你们学图形学的时候还用VB这么高级的东西啊,
我学的时候要用C来写啊,
回复
neowang 2003-01-04
橡皮筋效果是:
当首次单击鼠标左键时,该点为画直线的起点,此时不松开左键移动鼠标时会有直线始终连接起点和鼠标当前位置,松开左键时以松开鼠标的位置为终点画出直线。
回复
zyl910 2003-01-04
http://cocgame.myetang.com/zyl910/map/linetool.zip
直线编辑工具。允许修改绘制好的直线
回复
zyl910 2003-01-04
http://cocgame.myetang.com/zyl910/map/linetool.zip
直线编辑工具。允许修改绘制好的直线
回复
neowang 2003-01-04
各位大虾,我们老师要求我们不能用系统函数和api函数,只能自己写函数来实现啊!我晕!
回复
fzn0621 2003-01-03
橡皮筋的效果是怎么个效果?
回复
feixuehenshui 2003-01-03
Dim MySqr
MySqr = Sqr(4) ' 返回 2。
MySqr = Sqr(23) ' 返回 4.79583152331272。
MySqr = Sqr(0) ' 返回 0。
MySqr = Sqr(-4) ' 生成一个运行时错误(负数不能用此函数开平方根)。

回复
发动态
发帖子
VB基础类
创建于2007-09-28

7451

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告