Gjakmarrja Skrevet 1. mai 2006 Del Skrevet 1. mai 2006 (endret) Hei! Jeg har ruter i programmet som er på 35*35. Alle rutene har sitt nummer: 0|20 1|21 2|22 3|23 4|24 5|25 6|26 7|27 Program vinduet er på 700*700 => Totalt 400 ruter, 20 per rad/kollonne. OSV. (er vel 400 firkanter men det over viser hjørnet oppe til venstre i programmet. Jeg har et problem, hvordan gjør jeg om rutenummer til en x og y verdi til ruten? X og Y verdien er den oppe i venstre hjørne på en gitt rute, hvordan kan jeg lage en algoritme som får dette frem? *HODEPINE* Noen som kan hjelpe? Tusen takk for hjelp. Endret 1. mai 2006 av chills Lenke til kommentar
Giddion Skrevet 2. mai 2006 Del Skrevet 2. mai 2006 hhmmm.. håper jeg har forstått deg riktig la oss si at jeg har et rutenett på 8x8 for å ta det enkelt 1 9 17 2 10 18 3 11 19 4 12 20 5 13 21 6 14 22 7 15 23 8 16 osv.... så det du lurer på er fks.. x og y verdien på fks nr. 23 håper det var riktig. ¨ 23/8 = 2,875 (man ser at man har 2 hele så x blir da 2+1) Y finner man med å gange 8 med resten fra 2,875 -2 (0,875) dvs Y = 0,875 * 8 = 7 i dette systemet er starten av en array 1 håper det hjalp Lenke til kommentar
dayslepr Skrevet 3. mai 2006 Del Skrevet 3. mai 2006 (endret) cl-user> (defparameter *brick-size* 35) *brick-size* cl-user> (defun global-coord-of (brick-col brick-row) (values (* brick-col *brick-size*) (* brick-row *brick-size*))) style-warning: redefining global-coord-of in DEFUN global-coord-of cl-user> (global-coord-of 0 0) 0 0 cl-user> (global-coord-of 10 0) 350 0 cl-user> (global-coord-of 19 0) 665 0 cl-user> (global-coord-of 19 10) 665 350 cl-user> (global-coord-of 19 19) 665 665 vet ikke helt hva du mener med "rutenummer" og det der, men regner med at du vil ha tak i globale koordinater ut i fra rutens kolonne/rad-koordinat? Endret 3. mai 2006 av dayslepr Lenke til kommentar
Gjakmarrja Skrevet 3. mai 2006 Forfatter Del Skrevet 3. mai 2006 håper det hjalp 6026418[/snapback] Hva noe slikt jeg hva inne på ja. vet ikke helt hva du mener med "rutenummer" og det der, men regner med at du vil ha tak i globale koordinater ut i fra rutens kolonne/rad-koordinat? 6032386[/snapback] Hvis globale verdier er x og y så ja. Lenke til kommentar
Gjakmarrja Skrevet 3. mai 2006 Forfatter Del Skrevet 3. mai 2006 Har lekt litt med dette og skal si det ikke hva så lett... Vurderer å bare lagre alle verdiene i en array, i stedet for å regne meg frem til de hver gang. Hva enklere å gjøre om x og y til rutenummer.. omvendt får jeg faen ikke til. Skal på jobb snart, får se mer på dette i morgen eller fredag. Lenke til kommentar
dayslepr Skrevet 3. mai 2006 Del Skrevet 3. mai 2006 ..er det bare jeg som ikke skjønner hva du egentlig er ute etter? Lenke til kommentar
Mr.Garibaldi Skrevet 3. mai 2006 Del Skrevet 3. mai 2006 (endret) ..er det bare jeg som ikke skjønner hva du egentlig er ute etter? 6035074[/snapback] Nei, har sittet og klødd meg i hodet for å forstå det en stund.. Tror kanskje det er følgende; han har et rutenett av 20 * 20 rektangler, som er nummerert fra 1 til 400. Når en bruker klikker på en av rutene, så skal programmet slå opp i en 2d array og hente ut verdien derifra. Problemet hans er å konvertere fra rektangelet til arrayen, og tilbake. Noe som kan f.eks. gjøres på følgende måte: pseudo: x = (int) rektNr/20; y = (rektNr%20)/5; //% er modulo operasjon //do something with x and y //tilbake: rektNr = (x*20)+y; Ellers så er jeg helt på bærtur... [EDIT] Forresten, hvis du vil bruke en annen verdi enn 20 * 20, her Z, bytt ut 20 med Z og 5 med 1/Z*100, som du bør prekomputere for å spare ressurser under kjøring. Hvis jeg har rett i at det er dette han er ute etter, så tror jeg deler av forvirringen kommer av at han snakker om 35*35 og 20*20 om hverandre, uten å egentlig forklare hva programmet skal gjøre [/EDIT] Endret 3. mai 2006 av Mr.Garibaldi Lenke til kommentar
Giddion Skrevet 3. mai 2006 Del Skrevet 3. mai 2006 så problemet er kort sakt og konverter en 1D verdi til en 2D verdi i et statist rutenett... eller? fint hvis du (chills) sa hvilke språk du bruker. Lenke til kommentar
Gjakmarrja Skrevet 3. mai 2006 Forfatter Del Skrevet 3. mai 2006 (endret) så problemet er kort sakt og konverter en 1D verdi til en 2D verdi i et statist rutenett... eller? fint hvis du (chills) sa hvilke språk du bruker. 6035816[/snapback] Takk alle sammen for hjelpen... Jeg bruker VB 2005, men jeg klarer nok og oversette iallefall C++. Ja, det stemmer. Jeg vil ha x og y verdien til en gitt rute ut i fra rutenummer, grunnet jeg skal tegne til ruten (bitmaps). Mhm 20*20 er rute nettet, hver rute er på 35*35 så vinduet er på 700*700. Totalt 400 ruter, ja tror det blir å ligge de inn i en array. Dette er et spill, rutene er ruter i et spill som jeg skal tegne bitmaps til. Dette funker bedre enn å bruke 400 pic bokser.. Endret 3. mai 2006 av chills Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå