/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
[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
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste