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 Sub
Edit: 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 Sub
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.
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.