EdgarsK Posted May 24, 2010 Report Share Posted May 24, 2010 (edited) Sveiki, man ir kods, kuršs zīmē peles kustības un mans uzdevums ir noķert punktus kur pele mainijusi virzienu. Tam visam noteikti ir kāds smalks un vienkāršs risinājums. Varbūt variet palīdzēt ? Klients nospiežot peli un velkot to pa ekrānu piepilda masīvu ar koordinātēm Array X ( 371,375,377,379,379,380,381,382,384,385,387,388,388,388,388 ) Array Y ( 208,210,212,213,214,212,212,211,207,205,203,202,201,204,205 ) šīs koordinātes veido līniju uz leju pa labi, un uz augšu pa labi. Mani interesē, kā iegūt punktu kurā mainīts virziens. Paldies. Edited May 24, 2010 by EdgarsA Quote Link to comment Share on other sites More sharing options...
0 Sasa Posted May 24, 2010 Report Share Posted May 24, 2010 Pirmais kas nāk prātā tas ir skatīties iepriekšējo koordināti. Būtu labāk taisīt vienu masīvu Points kurā ir x,y kopā ka viens punkts. Quote Link to comment Share on other sites More sharing options...
0 briedis Posted May 24, 2010 Report Share Posted May 24, 2010 (edited) Ja ir kustība kaut kādā konkrētā virzienā, tad x/y koordinātes mainās, tas ir, pieaug vai samazinās. attalums = prev_x - now_x Ja attāluma zīme ir mainījusies no iepriekšējā stāvokļa kaut kādā momentā, tad virziens ir mainījies... Tā es to saprotu... Edited May 24, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
0 EdgarsK Posted May 24, 2010 Author Report Share Posted May 24, 2010 nja, ideja jau arī man bija skaidra šādā veidā. bet - sāku 100x100, dodos pa labi uz augsu 101x99 102x98 102x97 102x96 103x95 103x94 104x94 105x94 redzi kā man roka raustās, bet man nepieciešamie punkti būtu vajadzīgi tur kur tiešām leņķis krasi mainās, varbūt kādam ir kāda matemātiskā formula prātā ? Quote Link to comment Share on other sites More sharing options...
0 briedis Posted May 24, 2010 Report Share Posted May 24, 2010 Nevar tā, ka piefiksē koordinātas ik pa brīdim, nevis nonstopā? Quote Link to comment Share on other sites More sharing options...
0 bubu Posted May 24, 2010 Report Share Posted May 24, 2010 Ja x vai y koordināte no vienas izmaiņas uz otru pamainījusies mazāk par 5px (vai citu skaitli), tad ignorē šo izmaiņu. Tik šo dari, nevis starp katriem blakus esošiem punktiem, bet ik pa vairākam izlaižot. Quote Link to comment Share on other sites More sharing options...
0 EdgarsK Posted May 24, 2010 Author Report Share Posted May 24, 2010 :) hehey, sanāca - paldies par palīdzību, kā jau vienmēr iedošu arī savu kodu, bet lūdzu nepiesienamies :) centos pēc iespējas ātrāk uzrakstīt. Ja ir varianti palabojam. var Draw = new Object; Draw.xList = new Array(100,101,102,103,104,105,105,105,106,107,108,109,110,111,112,113,114,115,116,116,117,118,119,120); Draw.yList = new Array(100,101,102,103,104,105,105,105,106,107,108,109,110,111,112,113,114,115,116,116,117,118,119,120); function cookSomePoints(){ $("#draw").html('<div id="preview1"></div>'); var Xs = Draw.xList.split(","); var Ys = Draw.yList.split(","); var now = 0; var past_x = 0; var past_y = 0; var points=''; for(i=0;i<Xs.length;i++){ if(now == 0){ Draw.tmpx = Xs[i]-past_x; Draw.tmpy = Ys[i]-past_y; Draw.tmpx1 = past_x-Xs[i]; Draw.tmpy1 = past_y-Ys[i]; Draw.tmpx = Draw.tmpx.toString(); Draw.tmpx1 = Draw.tmpx1.toString(); Draw.tmpy = Draw.tmpy.toString(); Draw.tmpy1 = Draw.tmpy1.toString(); Draw.tmpx = Draw.tmpx.replace("-",""); Draw.tmpxq = Draw.tmpx1.replace("-",""); Draw.tmpy = Draw.tmpy.replace("-",""); Draw.tmpy1 = Draw.tmpy1.replace("-",""); Draw.tmpx = new Number(Draw.tmpx); Draw.tmpx1 = new Number(Draw.tmpx1); Draw.tmpy = new Number(Draw.tmpy); Draw.tmpy1 = new Number(Draw.tmpy1); if((Draw.tmpx>10&&Draw.tmpy>10)||(Draw.tmpx1>10&&Draw.tmpy1>10)){ points += (points==''?'':',')+Xs[i]+':'+Ys[i]; past_x = Xs[i]; past_y = Ys[i]; } } now++; if(now==4){ now=0; } } Draw.Points = points; } Quote Link to comment Share on other sites More sharing options...
Question
EdgarsK
Sveiki,
man ir kods, kuršs zīmē peles kustības un mans uzdevums ir noķert punktus kur pele mainijusi virzienu.
Tam visam noteikti ir kāds smalks un vienkāršs risinājums. Varbūt variet palīdzēt ?
Klients nospiežot peli un velkot to pa ekrānu piepilda masīvu ar koordinātēm
šīs koordinātes veido līniju uz leju pa labi, un uz augšu pa labi.
Mani interesē, kā iegūt punktu kurā mainīts virziens.
Paldies.
Edited by EdgarsALink to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.