如题。
解决方案 »
- 菜鸟求思路或源码、、、
- 通过普通组合框能否实现,每输入一个字符,下拉框里自动检索符合输入内容的数据信息。如sohu打开邮箱时的效果
- 已知一个textbox控件的handle,能否用sendmessage之类的API让这个text控件选中第10-20个字符??
- 在类中的函数不用获得数据表的记录数?
- 我的系统中有两个操作系统2000及98,每次开机都出现选择提示(30秒),如何删除98系统的选项,只剩下2000,以后进入系统就不必选择了?
- listview与msflexgrid有何区别?
- 散分![理由见内]
- 泰山在吗,你给的Dll为什么不能运行
- 用VB写的ACTIVE DLL组件,其中一个方法是的参数是个VARIANT数组,当在ASP中使用这个DLL的时候,需要把一个树组传进去,总报错,这是为什么?????
- 怎样把数据转化成日期?
- 如何将控件数组作为参数窜给函数
- 急,listview + ColumnHeader + checkbox.
Private Sub Command1_Click()
Form1.ScaleMode = 3
Form1.Circle (10, 10), 10
End Sub
想到用直径画一天线,然后旋转360度,求旋转点坐标,再描绘。
不知道还有没有其它方法?
可能你看了会觉得奇怪,但是没有办法啊
半径:r
角度:a0则圆上任一点为:(x1,y1)
x1 = x0 + r * cos(ao * 3.14 /180 )
y1 = y0 + r * sin(ao * 3.14 /180 )--------------------------------------------------
设:
r = 500
x0 = 2000
y0 = 2000做出例图:
Me.AutoRedraw = True
Me.PSet (x0, y0)枚举每一点:
For x1 = x0 - r To x0 + r
s1 = Sqr(r ^ 2 - (x1 - x0) ^ 2)
Me.PSet (x1, y0 - s1) '即 x1,y0 - s1
Me.PSet (x1, y0 + s1) '即 x1,y0 + s1
Next x1
Private Type POINTAPI
x As Long
y As Long
End Type
Private Const pi = 3.1415926
Private Sub DrawCircle(obj As Object, pt As POINTAPI, radius As Double, crColor As Long)
Dim angle As Double
For angle = 0 To 2 * pi Step pi / 360
SetPixel obj.hdc, pt.x + radius * Cos(angle), pt.y + radius * Sin(angle), crColor
Next
End SubPrivate Sub Command1_Click()
Dim pt As POINTAPI
Dim radius As Double
radius = 50
pt.x = 100
pt.y = 100
DrawCircle Form1, pt, radius, vbRed
//DrawCircle picture1, pt, radius, vbRedEnd Sub
建议使用BRESENHAM方法,不需要做FLOAT运算。
Private Sub Command1_Click()
Dim i As Double
Dim a As Integer, b As Integer
Dim r As Integer
Dim x As Double, y As Double
a = CInt(Text1) '圆心坐标
b = CInt(Text2) '圆心坐标
r = CInt(Text3) '圆心半径
For i = a - r To a + r Step 0.01
x = i
y = Sqr(r ^ 2 - (x - a) ^ 2) + b
Picture1.PSet (x, y), vbRed
Picture1.PSet (x, 2 * b - y), vbRed
Next
End SubPrivate Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.ScaleMode = 3
Picture1.CurrentX = 100
Picture1.CurrentY = 100 Text1 = "100"
Text2 = "100"
Text3 = "50" Command1.Caption = "绘制"
End Sub