当前位置:编程学习 > VB >>

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 ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,