Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: kuvan pyöritys

snakari [06.01.2003 03:33:06]

#

eli datasta luettaisiin eka kuva.
sitten voisi määrätä kuvan kulman ja sit se tulostuu siinä kulmassa. kokeilin itte jotain sin ja cos hommaa, mutta se ei ihan toiminu.
pistetään nyt esimerkki:

FOR y = 1 TO 2
FOR x = 1 TO 4
READ v
PSET (x, y), v
NEXT
NEXT
DATA 0,1,0,1
DATA 1,0,1,0

ja tuo tulostuu jotenkin näin

x x x
 x x

niin miten saisin sen esimerkiksi tulostettua näin:

x
 x
x
 x

edit: lisää esimerkkejä

progo [10.01.2003 17:06:16]

#

Siis puhutko rotaatiosta? Nostin tämän aiheen, jotta joku matematiikkaa osaava voisi auttaa.. ? Mutta eiköhän teoriana ole se; että katotaan suunta, mihin käännetään kuvaa.. lasketaan joillain funktioilla pikseleille uudet koordinaatit.. tarvitset joka tapauksessa taulukon, johon ladot kuvan..

tomaattigeeni [10.01.2003 18:31:05]

#

katso Hunter -peli basgurusta, jos rotaatiota haluut. SVGAQB kirjastossa on muistaakseni valmiit rotaatifunktiot.

snakari [10.01.2003 21:41:00]

#

proguru, puhumpa hyvinkin.
tomaattigeeni, se hunter-peli ei toiminu vaikka hain kirjaston

eikö olisi jotain helpompaa tapaa?

Antti Laaksonen [10.01.2003 23:31:23]

#

Tein nyt huvikseni tällaisen pienen kuvan pyörittelyohjelman, oikein animaation kera, toivottavasti on suurinpiirtein sellainen kuin tarvitset :)

CONST K = 15
CONST L = 15
CONST KX = 160
CONST KY = 100
CONST PII = 3.14159

SCREEN 13

CLS

DO

  FOR a% = 0 TO 360 STEP 1

    a! = a% * (PII / 180)
    '    ^----käännettävä asteluku

    LINE (KX - L * 2, KY - K * 2)-(KX + L * 2, KY + K * 2), 0, BF


    RESTORE kuva

    s! = SIN(a!)
    c! = COS(a!)
    FOR i% = 1 TO L
      FOR j% = 1 TO K
        READ v%
        x1! = i% * c! + j% * s!
        y1! = j% * c! - i% * s!
        x2! = (i% + 1) * c! + (j% + 1) * s!
        y2! = (j% + 1) * c! - (i% + 1) * s!
        IF i% <> L AND j% <> K THEN
          LINE (KX + x1!, KY + y1!)-(KX + x2!, KY + y2!), v%, BF
        ELSE
          PSET (KX + x1!, KY + y1!), v%
        END IF
      NEXT
    NEXT

    IF INKEY$ = CHR$(27) THEN EXIT DO
    WAIT &H3DA, 8

  NEXT

LOOP

kuva:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,1,2,2,2,2,2,2,2,2,2,2,2,1,1
DATA 1,1,2,2,2,2,2,2,2,2,2,2,2,1,1
DATA 1,1,2,2,4,4,4,4,4,4,4,2,2,1,1
DATA 1,1,2,2,4,4,0,0,0,4,4,2,2,1,1
DATA 1,1,2,2,4,0,0,0,0,0,4,2,2,1,1
DATA 1,1,2,2,4,0,0,0,0,0,4,2,2,1,1
DATA 1,1,2,2,4,0,0,0,0,0,4,2,2,1,1
DATA 1,1,2,2,4,4,0,0,0,4,4,2,2,1,1
DATA 1,1,2,2,4,4,4,4,4,4,4,2,2,1,1
DATA 1,1,2,2,2,2,2,2,2,2,2,2,2,1,1
DATA 1,1,2,2,2,2,2,2,2,2,2,2,2,1,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

snakari [11.01.2003 00:21:56]

#

Kiitos tosi paljon!
Tuonhan voisi melkein lisätä vinkiksi asti

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta