vb画圆后,想知道这个圆的坐标
各位大侠:我用vb画各种图形,画好后,需要知道各个图形的坐标,并且按照一定的顺序能够存储最好,现在很急啊!!!!各位帮帮忙 --------------------编程问答--------------------保存圆的圆心坐标和半径即可。其他折线图形保存各点的坐标。 --------------------编程问答-------------------- 图形是随意画的,怎么能做呢,能具体点吗?
--------------------编程问答-------------------- 总有一定的规则吧? --------------------编程问答-------------------- 我这里是上位机用vb做界面。设置为一个画图板,图形有固定的各种图形(包括各种圆,矩形,直线,等等),也有用鼠标随意画图。要将这些图形的数据传输给下位机。我就是想知道怎样获得这些图形的数据,好传输给下位机。由于小弟是个初学者,还想请各位大侠帮帮。 --------------------编程问答-------------------- Dim x1, y1 As Single
Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
x1 = X: y1 = Y
End If
End Sub
Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.AutoRedraw = False
Picture1.Refresh
Picture1.PSet (x1, y1)
Picture1.Circle (x1, y1), Sqr((X - x1) ^ 2 + (Y - y1) ^ 2)
end if
end sub
Private Sub picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.AutoRedraw = True
End If
这个是我的程序代码,就是想保存没一点的坐标(x,y) --------------------编程问答-------------------- 我也不是很懂,特来学习学习。 --------------------编程问答-------------------- 你自己画的图形,你自己都不知道以什么坐标画的么? --------------------编程问答-------------------- 你可以做一个结构体来表示你的图形元素,然后再把这个结构体做个数组,当你的一个绘图动作完成时,把相关的参数加入这个结构体数组,要传数据的时候直接将这个数组发出去就可以了,如:
' 基础数据结构
Type DrawType
d_type As Byte '绘制图形的类型
' 0 表示圆形
' 1 表示矩形
' 2 表示三角型
' 3 表示多边形
' 4 表示带曲线的多边形
' 5 表示直线
' 6 表示曲线
' ......
d_size As Integer '图形数据的大小
' 根据d_type的参数决定数据的大小
d_data() As Byte '图形的数据内容
' 根据d_type的参数决定数据的结构
End Type
' 原型类型的数据结构
Type DrawType1
d_x As long ' 圆心的x坐标
d_y As long ' 圆心的y坐标
d_r As long ' 圆的半径
d_fcolor As long ' 边线颜色 在32位最高位为1,表示透明(RGB色只用到后24位)
d_bcolor As long ' 填充颜色 透明同d_fcolor设置
d_t As integer ' 线条的粗细
End Type
' 矩形类型的数据结构
Type DrawType2
d_left As long ' 矩形的左边坐标
d_top As Long ' 矩形的上边坐标
d_width As long ' 矩形的宽度
d_height As long ' 矩形的高度
d_fcolor As long ' 边线颜色
d_bcolor As long ' 填充颜色
d_t As integer ' 线条的粗细
d_a As Single ' 举行的角度
End Type
...
' 定义全局公共变量
Dim ddata() As DrawType
Dim dIndex As Long
...
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
...
' 确定要插入的数据是圆形数据,这是保存圆形数据过程
Dim tmp_dr As DrawType1
tmp_dr.d_x = X ' 设置圆心的x坐标
tmp_dr.d_y = Y ' 设置圆心的y坐标
tmp_dr.d_r = radius ' 设置圆的半径
tmp_dr.d_fcolor = Picture1.FillColor ' 设置线条颜色
tmp_dr.d_bcolor = &H80000000 ' 设置为不填充
tmp_dr.d_t = 1 ' 设置线条粗细为1像素
' 开始将数据导入基本结构体
If dIndex=0 Then
Redim ddata(dIndex)
Else
Redim Preserve ddata(dIndex)
End If
ddata(dIndex).d_type=0 ' 设置类型为圆
ddata(dIndex).d_size = LenB(tmp_dr) ' 取得圆形数据结构体的大小
Redim ddata(dIndex).d_data(ddata(dIndex).d_size-1) ' 设置数据缓冲区
CopyMemory ddata(dIndex).d_data(0),tmp_dr,ddata(dIndex).d_size
dIndex = dIndex + 1
...
End Sub
补充:VB , 数据库(包含打印,安装,报表)