Piirto-ohjelman "sivellin"

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 7:40 pm
Location: C:\Työpöytä

Piirto-ohjelman "sivellin"

Post by TukeKoodi »

Eli, olen tekemässä eräänlaista piirto-/kuvankäsittelyohjelmaa. Teen siveltimen kahdella for...next loopilla, mutta siitä ei tule haluamaani laatikonmuotoista sivellinnä vaan ainoastaan 3 pikselin leveä viiva. Mikä on ongelmana?

Code: Select all

SCREEN 800, 600

Repeat

    kuvan_x = Input ("Leveys: ")
    DrawScreen
Until KeyHit (28)

CloseInput
Repeat

    kuvan_y = Input ("Korkeus: ")
    DrawScreen
Until KeyHit (28)

CloseInput
kuva = MakeImage (kuvan_x, kuvan_y)

DrawToImage kuva
Color 255,255,255
Box 0,0,kuvan_x,kuvan_y,1

Repeat

    DrawImage kuva, 0, 0
    
    If MouseDown (1) Then
        DrawToImage kuva
        Color 0,0,0
        
        piirto_x = - 3
        piirto_y = - 3
        
        For i = 1 To 3
        
        For i = 1 To 3
        Dot MouseX()+piirto_x, MouseY()+piirto_y
        piirto_x+1
        Next i
        
        piirto_x = - 3
        piirto_y+1
        Next i
        
    EndIf
    
    DrawToScreen
    
    DrawScreen
Forever
Saatan tulla tässä topikissa kyselemään muutakin tähän asiaan liittyvää.

Offtopic: Saako näitä viestien kirjoituksessa olevia tekstivärjäyksiä pois? Ne ärsyttää.

EDIT:

Ja ne, jotka ihmettelevät miksi en tee sivellintä Box:illa, niin haluan vähän "ilmavamman" jäljen :D

Aloittelija, koodaaja, jotain...
CbFUN :D
Dimple
Active Member
Posts: 103
Joined: Wed Nov 17, 2010 5:43 pm

Re: Piirto-ohjelman "sivellin"

Post by Dimple »

Korjaa ainakin

Code: Select all

        For i = 1 To 3
        
            For i = 1 To 3
                Dot MouseX()+piirto_x, MouseY()+piirto_y
                piirto_x+1
            Next i
        
            piirto_x = - 3
            piirto_y+1
        Next i
esim. näin

Code: Select all

        For i = 1 To 3
        
            For j= 1 To 3
                Dot MouseX()+piirto_x, MouseY()+piirto_y
                piirto_x+1
            Next j
        
            piirto_x = - 3
            piirto_y+1
        Next i
Oikea sisentäminen muuten auttaa bongaamaan tuollaisia virheitä.
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 7:40 pm
Location: C:\Työpöytä

Re: Piirto-ohjelman "sivellin"

Post by TukeKoodi »

Kiitos!
Aloittelija, koodaaja, jotain...
CbFUN :D
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Piirto-ohjelman "sivellin"

Post by MaGetzUb »

TukeKoodi wrote:
EDIT:

Ja ne, jotka ihmettelevät miksi en tee sivellintä Box:illa, niin haluan vähän "ilmavamman" jäljen :D

Mitä meinaat ilmavammalla jäljellä? Ja kyllä boxilla kannattaisi tehdä ilmanmuuta!

Ja For silmukat kannattaisi toteuttaa näin:

Code: Select all

For j = -1 to 1
    For i = -1 to 1
    Dot Mousex()+i, Mousey()+j
    Next i
Next j
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Piirto-ohjelman "sivellin"

Post by Ilmuri »

MaGetzUb wrote: Ja For silmukat kannattaisi toteuttaa näin:

Code: Select all

For j = -1 to 1
    For i = -1 to 1
    Dot Mousex()+i, Mousey()+j
    Next i
Next j
Isommilla sivellinko'oilla kannattaa tietty siirtää funktiokutsut silmukoiden ulkopuolelle.
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Post Reply