vb画圆后,想知道这个圆的坐标

jiangjiangp 2012-08-01 03:24:10
各位大侠:我用vb画各种图形,画好后,需要知道各个图形的坐标,并且按照一定的顺序能够存储最好,现在很急啊!!!!各位帮帮忙
...全文
373 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2013-01-23
  • 打赏
  • 举报
回复
你自己画的图形,你自己都不知道以什么坐标画的么?
现在还是人类 2013-01-23
  • 打赏
  • 举报
回复
你可以做一个结构体来表示你的图形元素,然后再把这个结构体做个数组,当你的一个绘图动作完成时,把相关的参数加入这个结构体数组,要传数据的时候直接将这个数组发出去就可以了,如: ' 基础数据结构 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
xiji4482 2013-01-21
  • 打赏
  • 举报
回复
我也不是很懂,特来学习学习。
jiangjiangp 2012-08-11
  • 打赏
  • 举报
回复
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)
jiangjiangp 2012-08-02
  • 打赏
  • 举报
回复
我这里是上位机用vb做界面。设置为一个画图板,图形有固定的各种图形(包括各种圆,矩形,直线,等等),也有用鼠标随意画图。要将这些图形的数据传输给下位机。我就是想知道怎样获得这些图形的数据,好传输给下位机。由于小弟是个初学者,还想请各位大侠帮帮。
贝隆 2012-08-01
  • 打赏
  • 举报
回复
总有一定的规则吧?
jiangjiangp 2012-08-01
  • 打赏
  • 举报
回复
图形是随意画的,怎么能做呢,能具体点吗?
of123 2012-08-01
  • 打赏
  • 举报
回复

保存圆的圆心坐标和半径即可。其他折线图形保存各点的坐标。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧