|
| [vb.net] Rotation af et punkt?? Fra : Peter Jensen |
Dato : 12-10-02 13:37 |
|
Hej!
I vb.net har jeg brug for at rotere et punkt, som tegnes i en picturebox.
Dog kan jeg tilsyneladende ikke få formlen rigtig. Det vedlagte eksempel
skulle gerne tegne punkter fra 0 til 90 grader i en cirkel, men istedet
bliver punkterne fordelt hele cirklen rundt. Hvad gør jeg galt?
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles PictureBox1.Click
Dim g As Graphics = PictureBox1.CreateGraphics
Dim stjerner As New Pen(Color.Blue)
Dim x, y, X1, Y1, X0, Y0, Rotation
For Rotation = 0 To 45
'Rotér
X1 = 150 : Y1 = 45 ' Punktet der roteres
X0 = 150 : Y0 = 150 ' Centrum for rotation
x = System.Math.Cos(Rotation) * (X1 - X0) - System.Math.Sin(Rotation) *
(Y1 - Y0) + X0
y = System.Math.Sin(Rotation) * (X1 - X0) + System.Math.Cos(Rotation) *
(Y1 - Y0) + Y0
g.DrawEllipse(stjerner, CInt(x), CInt(y), 2, 2)
Next
End Sub
På forhånd tusinde tak.
/Peter
| |
Jørgen Holdt (16-10-2002)
| Kommentar Fra : Jørgen Holdt |
Dato : 16-10-02 16:13 |
|
Jeg ved ikke om dette kan bruges til noget.
Den Tegner en cirkel i en form i de antal Degrees du vil fra 1 til 360
grader
Private Sub Command1_Click()
ScaleMode = 3 ' Set scale to pixels.
CX = ScaleWidth / 2 ' Set X position.
CY = ScaleHeight / 2 ' Set Y position.
PI = 22 / 7 'Ca.
Degrees = 270
Radius = 30
Let lRadians = (PI * Degrees / 180)
Circle (CX, CY), 5 'Cirkel Center
Circle (CX, CY), Radius, 255, lRadians
End Sub
"Peter Jensen" <retep@post5.tele.dk> skrev i en meddelelse
news:3da81784$0$18537$edfadb0f@dspool01.news.tele.dk...
> Hej!
> I vb.net har jeg brug for at rotere et punkt, som tegnes i en picturebox.
> Dog kan jeg tilsyneladende ikke få formlen rigtig. Det vedlagte eksempel
> skulle gerne tegne punkter fra 0 til 90 grader i en cirkel, men istedet
> bliver punkterne fordelt hele cirklen rundt. Hvad gør jeg galt?
>
> Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles PictureBox1.Click
>
> Dim g As Graphics = PictureBox1.CreateGraphics
>
> Dim stjerner As New Pen(Color.Blue)
>
> Dim x, y, X1, Y1, X0, Y0, Rotation
>
> For Rotation = 0 To 45
>
> 'Rotér
>
> X1 = 150 : Y1 = 45 ' Punktet der roteres
>
> X0 = 150 : Y0 = 150 ' Centrum for rotation
>
> x = System.Math.Cos(Rotation) * (X1 - X0) - System.Math.Sin(Rotation) *
> (Y1 - Y0) + X0
>
> y = System.Math.Sin(Rotation) * (X1 - X0) + System.Math.Cos(Rotation) *
> (Y1 - Y0) + Y0
>
> g.DrawEllipse(stjerner, CInt(x), CInt(y), 2, 2)
>
> Next
>
> End Sub
>
>
>
> På forhånd tusinde tak.
>
> /Peter
>
>
>
| |
|
|