Gå til innhold

Logikk problem, rute nummer om til x og y.


Anbefalte innlegg

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. :yes:

Endret av chills
Lenke til kommentar
Videoannonse
Annonse

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 :ermm:

Lenke til kommentar

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 av dayslepr
Lenke til kommentar
håper det hjalp :ermm:

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

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. :hrm::hrm:

 

Skal på jobb snart, får se mer på dette i morgen eller fredag.

Lenke til kommentar
..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 av Mr.Garibaldi
Lenke til kommentar
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... :thumbup:

 

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 av chills
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...