Jos minulla on kohdat x1,y1 niin miten saisin että ohjelma laskisi 360 uutta x,y kohtaa nykyisestä alkaen ympyrän malliin, että jos laittaisin hiiren liikkumaan uusiin kohtiin se tekisi ympyrän, joka alkaisi x1,y1:stä?
Toivottavasti joku ymmärtää mitä meinaan. Sen ympyrän minkä se tekee halkaisija saisi olla jotain 80 pikseliä. Sen ei tarvitse olla täydellinen ympyrä.
Kiitos.
Tuli mieleen etta helpoiten varmaan onnistuu polar graphing:ia kayttaen (ei mitaan hajua mita tuo voisi olla suomeksi jos joku sen tietaa niin kertokoon ihmeessa). Kaavat x = r * cos(kulma) ja y = r * sin(kulma). Nuo kulmat pitaa olla radiaaneissa jos vb:lla teet. Tassa koodiesimerkki vb:lle:
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
'tama on jostain joskus kopioitu yksinkertainen hiirenliikutus
Sub MoveMouse(x, y)
Dim pt As POINTAPI
pt.x = x
pt.y = y
ClientToScreen hwnd, pt
SetCursorPos pt.x, pt.y
End Sub
Private Sub Form_Load()
r = 100 'sade
Dim i As Double
xentinen = 150 'entiset x coordinaatit
yentinen = 150 'entiset y coordinaatit
For i = 1 To 360 'asteina
ajastin = Timer 'hidastellaan
Do While ajastin + 0.01 > Timer
DoEvents
Loop
v = i * 3.14 / 180 'muutetaan asteet radiaaneiksi, 3.14 = koyhan miehen pii
x = r * Cos(v) 'lasketaan x:n coorinaatit
y = r * Sin(v) 'lasketaan y:n coorinaatit
x = x + xentinen
y = y + yentinen
MoveMouse x, y
Next
End SubEdit: Ja pyydan jo etukateen anteeksi skandeja, ei satu olemaan nappiksessa niita ja on niin pirun hidasta kirjoittaa niita tuolla "ctrl shift a/o" hakkyralla jonka niita varten tein...
Nesci kirjoitti:
Tuli mieleen etta helpoiten varmaan onnistuu polar graphing:ia kayttaen (ei mitaan hajua mita tuo voisi olla suomeksi jos joku sen tietaa niin kertokoon ihmeessa).
Polar coordinate on napakoordinaatti, joten kaipa tuo tarkoittaa napakäyrän kuvaajaa tai sen piirtoa.
Kuullostaa melko loogiselta. En ollut kuullut tuollaista sanaa kuin "napakoordinaatit" niin en lahetenyt sita suomentamaan sitten. Kiitos tasta, taas ollaan viisaampia.
Kiitos!
Tälläsen tein siitä
Private Sub DoCircle()
Randomize Timer
r = (Int(Rnd * 200) + 10) 'sade
Randomize
r2 = (Int(Rnd * 200) + 10) 'sade
pii = 9
aika = 0.004
Dim i As Double
xentinen = GetX
yentinen = GetY
For i = 1 To (Int(Rnd * 110) + 20) 'asteina
ajastin = Timer 'hidastellaan
Do While ajastin + aika > Timer
DoEvents
Randomize
aika = (Int(Rnd * 0.8) + 0.004)
Loop
v = i * pii / 180
X = r * Cos(v) 'lasketaan x:n coorinaatit
Y = r2 * Sin(v) 'lasketaan y:n coorinaatit
X = X + xentinen - r
Y = Y + yentinen
moveMouse X, Y
Next
End SubNo toi ei kylla ihan vastaa sita sun kysymaas ympyran piirtoa, mutta kiva jos tuo esimerkkini auttoi. Esim tuo ei laske valttamatta 360 uutta pistetta, eika ne valttamatta ole ympyran muodossa.
Nesci kirjoitti:
No toi ei kylla ihan vastaa sita sun kysymaas ympyran piirtoa, mutta kiva jos tuo esimerkkini auttoi. Esim tuo ei laske valttamatta 360 uutta pistetta, eika ne valttamatta ole ympyran muodossa.
Mutta tuollaisen halusin. =)
Mitenkäs saisin sen tekemään tuon ympyrän sitten vastapäivään? :)
Moikka JussiR!
Pistä se laskuri pyörimään toisin päin...
For i = (Int(Rnd * 110) + 20) To 1 STEP - 1
Kiitos. Nyt tiedän miten saan hiiren liikkumaan hienoissa kurveissa, mutta miten saisin että ne kurvit loppuisin johonkin x,y kohtaa niinkuin tässä esimerkissä? http://cruels.net/downloads/MoveMouseCC.exe
Kukaan ei jaksa miettiä niin vaikeita laskuja vai?
Aihe on jo aika vanha, joten et voi enää vastata siihen.