Voor het antwoord lees onderaan deze post of op de derde pagina mijn post.. houdt wel rekening ermee dat de computer in radialen reken en dat dat nog niet is aan gepast in mijn code
Mijn probleem is dus eigenlijk. Ik zet een punt neer in een circel. Nu kan het voorkomen dat er 2 punten over elkaar heen komen. Dit mag niet gebeuren en daarvoor wil ik hem over diezelfde rand van de circel ergens anders plaatsen.
Maar het lukt mij maar niet om uit te vinden hoe ik die niewue X en Y punten bereken.
Ik heb het forum al eens doorzocht maar ik kan dus geen informatie vinden die me verder brengt dan dat ik al ben..
een plaatje.. en wat code...

De code waar ik dus mee in de knoop zit is
deze code is dus al 100 keer veranderd en he tlukt me maar niet.
Meer informatie nodig? gewoon even vragen.. danku
edit.. vergeten..
Dit schijnt te werken maar hij plaats alles te ver naar buiten ..
Oplossing
300 - y is de straal..
+ 300 omdat het middelpunt 300 , 300 (pixel is)
en het werkt...
Een cursus Goniometrie is niet overbodig vooor mij..
ik zal het antwoord ook even in mijn openings post zetten dat andere het snel gevonden hebben..
Tnx to Janos en Bloog
Mijn probleem is dus eigenlijk. Ik zet een punt neer in een circel. Nu kan het voorkomen dat er 2 punten over elkaar heen komen. Dit mag niet gebeuren en daarvoor wil ik hem over diezelfde rand van de circel ergens anders plaatsen.
Maar het lukt mij maar niet om uit te vinden hoe ik die niewue X en Y punten bereken.
Ik heb het forum al eens doorzocht maar ik kan dus geen informatie vinden die me verder brengt dan dat ik al ben..
een plaatje.. en wat code...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| If frmSettings2.msfgStudentsFrequentie.Text = "x" Then ' voorwaarde 2 (meisje) iI = 0 frmSettings2.msfgStudentsFrequentie.Col = Vraag frmSettings2.msfgStudentsFrequentie.Row = i score = frmSettings2.msfgStudentsFrequentie.Text If score = 0 Then Y = (picSocio.Width / 2) / (iMantwoord + 1) Else Y = ((picSocio.Width / 2) / (iMantwoord - 1) * score) End If X = picSocio.Height / 2 iI = Mid$(sStemmen, score + 1, 1) + 1 Mid$(sStemmen, score + 1, 1) = CStr(iI) If Y = 300 Then Y = 290 X = X + (((300 - Y) * Cos(45 * (300 - Y)))) + 45 / 5 Y = Y - (((300 - Y) * Sin(45 * (300 - Y)))) picSocio.FillColor = vbBlue picSocio.FillStyle = 0 picSocio.Circle (Y, X), 10, vbBlue, , , 1 picSocio.PSet (Y - 6, X - 7), vbBlue picSocio.ForeColor = RGB(255, 255, 255) picSocio.Print i sLeerPos(i) = CStr(Y) & ":" & CStr(X) picSocio.FillStyle = 1 End If |
De code waar ik dus mee in de knoop zit is
code:
1
2
| X = X + (((300 - Y) * Cos(45 * (300 - Y)))) + 45 / 5 Y = Y - (((300 - Y) * Sin(45 * (300 - Y)))) |
deze code is dus al 100 keer veranderd en he tlukt me maar niet.
Meer informatie nodig? gewoon even vragen.. danku
edit.. vergeten..
code:
1
2
| X = 300 + (300 - Y * Math.Cos(45 * Pi / 180)) Y = 300 - (300 - Y * Math.Sin(45 * Pi / 180)) |
Dit schijnt te werken maar hij plaats alles te ver naar buiten ..
Oplossing
code:
1
2
3
4
5
6
| 'code zoals in mijn project Xx = (300 - Y) * Cos(10) Yy = (300 - Y) * Sin(10) X = Xx + 300 Y = Yy + 300 |
300 - y is de straal..
+ 300 omdat het middelpunt 300 , 300 (pixel is)
code:
1
2
3
4
| 'formule zoals ie gebruikt moet worden in andere projecten, r als in straal. x = r * cos(hoek) y = r * sin(hoek) |
en het werkt...
Een cursus Goniometrie is niet overbodig vooor mij..
ik zal het antwoord ook even in mijn openings post zetten dat andere het snel gevonden hebben..
Tnx to Janos en Bloog
[ Voor 26% gewijzigd door Verwijderd op 07-03-2005 14:12 ]