Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[VB 2008] Deljenje pozadine i upisivanje u matricu

[es] :: .NET :: [VB 2008] Deljenje pozadine i upisivanje u matricu

[ Pregleda: 2438 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon [VB 2008] Deljenje pozadine i upisivanje u matricu20.03.2010. u 18:34 - pre 172 meseci
Kako da iscrtam neku pozadinu koju bih mogao da posle podelim linijama na kvadratiće?
Ništa iz toolbox-a mi se ne čini da to može.

Želim da pozadinu prozora podelim linijama horizontalno i vertikalno, a zatim da vrednosti koordinata x i y svake kocke ubeležim u matricu.

Kako to da uradim?

Dakle, potrebna mi je mreža...

[Ovu poruku je menjao AleXys dana 20.03.2010. u 19:49 GMT+1]

Može li neko da me uputi? Da mi da neki link?

[Ovu poruku je menjao AleXys dana 20.03.2010. u 19:50 GMT+1]
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu20.03.2010. u 19:00 - pre 172 meseci
DataGridView. Kolone i redovi odgovaraju kolonama i redovima matrice. Ja
bih tako uradio.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu20.03.2010. u 19:22 - pre 172 meseci
Mislim da treba picturebox da se deli.
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu20.03.2010. u 22:52 - pre 172 meseci
u paint eventu od forme izracunas vrednosti koordinata 'kocaka' i onda sa e.Graphics.Drawline crtas
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 12:38 - pre 172 meseci
Code:
    Private Sub frmMain_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Render()
    End Sub


Render je uređen ovde:

Code:
    Private Sub Render()
        Dim xCnt, yCnt As Int16

        'Clear the backround
        oBuffG.Clear(Color.White)

        'Draw the starting/ending box
        oBuffG.FillRectangle(New SolidBrush(Color.LightGreen), StartX * 15, StartY * 15, 15, 15)
        oBuffG.FillRectangle(New SolidBrush(Color.Red), EndX * 15, EndY * 15, 15, 15)

        'Draw the walls
        For yCnt = 0 To 24
            For xCnt = 0 To 24
                If Map(xCnt, yCnt).Wall = True Then oBuffG.FillRectangle(New SolidBrush(Color.DarkGray), xCnt * 15, yCnt * 15, 15, 15)
                If Map(xCnt, yCnt).DrawPath = True Then
                    oBuffG.FillEllipse(New SolidBrush(Color.SteelBlue), xCnt * 15 + 4, yCnt * 15 + 4, 7, 7)
                End If

            Next
        Next

        'Draw the grid
        For xCnt = 0 To 25
            oBuffG.DrawLine(New Pen(Color.Black), xCnt * 15, 0, xCnt * 15, 375)
            oBuffG.DrawLine(New Pen(Color.Black), 0, xCnt * 15, 375, xCnt * 15)
        Next

        'Set the picture box image
        picMain.Image = CType(oBuff, Bitmap)

    End Sub
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 12:55 - pre 172 meseci
Iako iznad svakog reda piše objašnjenje, ja ne razumem postupak.

Može li neko da mi objasni detaljno šta se radi ispod sledećih?

Code:

'Draw the starting/ending box
        oBuffG.FillRectangle(New SolidBrush(Color.LightGreen), StartX * 15, StartY * 15, 15, 15)
        oBuffG.FillRectangle(New SolidBrush(Color.Red), EndX * 15, EndY * 15, 15, 15)


Koji li je ovaj postupak?



Code:

  'Draw the walls
        For yCnt = 0 To 24
            For xCnt = 0 To 24
                If Map(xCnt, yCnt).Wall = True Then oBuffG.FillRectangle(New SolidBrush(Color.DarkGray), xCnt * 15, yCnt * 15, 15, 15)
                If Map(xCnt, yCnt).DrawPath = True Then
                    oBuffG.FillEllipse(New SolidBrush(Color.SteelBlue), xCnt * 15 + 4, yCnt * 15 + 4, 7, 7)
                End If

            Next
        Next


Ovo, ma kao špansko selo...


Code:
        'Draw the grid
        For xCnt = 0 To 25
            oBuffG.DrawLine(New Pen(Color.Black), xCnt * 15, 0, xCnt * 15, 375)
            oBuffG.DrawLine(New Pen(Color.Black), 0, xCnt * 15, 375, xCnt * 15)
        Next


Crtanje, totalno mi je nepoznato...

Code:
'Set the picture box image
        picMain.Image = CType(oBuff, Bitmap)

Na koju foru mu se ovako slika dodeljuje?
Šta radi CType()?
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 14:27 - pre 172 meseci
Code:
    Private Map(24, 24) As CellData
    Private oBuff As New Bitmap(376, 376)
    Private oBuffG As Graphics = Graphics.FromImage(oBuff)


Šta rade ove tri?


Još uvek ne znam šta radi Private Map(24, 24) As CellData, nju ću posle.

Private oBuff As New Bitmap(376, 376)
Private oBuffG As Graphics = Graphics.FromImage(oBuff)

Ova dva prave kao neko postolje na picturebox-u. oBuff i oBuffG su samo imena, koja mogu biti proizvoljna.

Ovi brojevi, 376;376 mi nisu jasni, ne znam šta određuju, tj. šta ograničavaju.

[Ovu poruku je menjao AleXys dana 21.03.2010. u 16:08 GMT+1]
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 15:18 - pre 172 meseci
Pošto je
Code:
        Me.picMain.Size = New System.Drawing.Size(376, 376)


onda zbog toga idu brojevu (376, 376)

Code:
Private oBuff As New Bitmap(376, 376)


Hoće li još neko da mi pomogne oko što pravilnijeg tumačenja kodova?
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 15:51 - pre 171 meseci
Kada se crta kvadrat, prvi broj je x pozicija, drugi je y pozicija, treći je weight, a četvrti je height.

Zašto se vrednosti x i y drugačije vrednuju od wight i height vrednosti?

Recimo:
Code:
 grafika.FillRectangle(New SolidBrush(Color.Red), 50, 100, 50, 100)

Ne znam da li me shvatate, ali logično bi bilo da su prva 50-ica i treća 50-ica iste dužine, isto kao 100-tke.

Žašto je to tako?

 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 16:23 - pre 171 meseci
x i y su koordinate gde pochinje crtanje, tj. gde ce se nalaziti gornje
levo teme pravougaonika. A weight i height su koliko ce biti duzine
stranica.


--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 16:54 - pre 171 meseci
Jeste mi to jasno, ali mi nije jasno zašto merne jedinice nisu jasne.

Isto kao kad crtaš u koordinatnom sistemu, pa obično ti je 1 cm X-ose jednak jednom cm dužine kvadrata... You know what I am saying...

Zašto ovde nisu iste?
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 16:54 - pre 171 meseci
Citat:
Kada se crta kvadrat, prvi broj je x pozicija, drugi je y pozicija, treći je weight, a četvrti je height.

Zašto se vrednosti x i y drugačije vrednuju od wight i height vrednosti?

Recimo:
Code:
 grafika.FillRectangle(New SolidBrush(Color.Red), 50, 100, 50, 100)

Ne znam da li me shvatate, ali logično bi bilo da su prva 50-ica i treća 50-ica iste dužine, isto kao 100-tke.

Žašto je to tako?


nesto si zbunjen izgleda. tvoj kod ce nacrtati pravougaonik dimenzija 50x100 (4. i 5. argument) na koordinatama (50, 100) sto je 2. i 3. argument, a prvi argument je crveni brush, tako da nema govora o drugacijem vrednovanju

 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 17:06 - pre 171 meseci
Ok. Sorry, meni je picturebox bio pomeren blago dole desno, pa mi se činilo da nisu jednaki (to jest, da 50 nije jednako 50, a 100 da nije jednako 100), ali kad sam ga pomerio skroz gore levo, onda je sve ispalo normalno.

Ostalo mi je od onih 4 delova koda nejasnih, samo jedan:

Code:
'Draw the walls
        For yCnt = 0 To 24
            For xCnt = 0 To 24
                If Map(xCnt, yCnt).Wall = True Then oBuffG.FillRectangle(New SolidBrush(Color.DarkGray), xCnt * 15, yCnt * 15, 15, 15)
                If Map(xCnt, yCnt).DrawPath = True Then
                    oBuffG.FillEllipse(New SolidBrush(Color.SteelBlue), xCnt * 15 + 4, yCnt * 15 + 4, 7, 7)
                End If

            Next
        Next


Iz ovog koda mi je nejasno " Map(xCnt, yCnt).Wall " i " Map(xCnt, yCnt).DrawPath.

To su sigurno novi properties. Jesu li?
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 17:20 - pre 171 meseci
ocigledno da se tom primeru crta neka mapa sa zidovima i kojecim, tako da map(x,y) sigurno vraca neki objekat koji opisuje koordinate (x,y) na mapi i ima bool propertije Wall i DrawPath
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
62.108.102.*

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu21.03.2010. u 18:23 - pre 171 meseci
Code:
Public Structure CellData

#Region " Declares "
    Public OCList As Int16
    Public GCost As Int16
    Public HCost As Int16
    Public FCost As Int16
    Public ParentX, ParentY As Int16
    Public Wall As Boolean
    Public DrawPath As Boolean
#End Region

End Structure


Ovo je za wall, ali ne znam šta ga povezuje sa map().
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu22.03.2010. u 21:05 - pre 171 meseci
klikni na Map i pritisni F12 - to ce te odvesti na deklaraciju metoda ili promenljive, pa ces videti kako je Map povezano sa CellData
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
*.dynamic.sbb.rs.

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu23.03.2010. u 11:14 - pre 171 meseci
Code:
 Private Map(24, 24) As CellData


S obzirom da je map napisano sa zagradom i dva broja, ja bih rekao da je to dvodimenzionalna matrica.
Međutim, izgled ume da prevari. Pri deklaraciji, ona je postavljana kao tip CellData.
Da li je CellData već neki postojeći tip, ili neki novo-napravljeni tip?
Ako jeste novo napravljeno, zašto ne piše as New CellData? Zašto je to New izostavljeno?

Code:
Public Structure CellData

#Region " Declares "
    Public OCList As Int16
    Public GCost As Int16
    Public HCost As Int16
    Public FCost As Int16
    Public ParentX, ParentY As Int16
    Public Wall As Boolean
    Public DrawPath As Boolean
#End Region

End Structure


Da li je ispravno što ga nazivom "tipom", kad pri njegovoj deklaraciji piše Public Structure CellData.

Može li neko da mi pojasni ove stvari?
Gde grešim i gde se gubim?
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
*.dynamic.sbb.rs.

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu23.03.2010. u 11:28 - pre 171 meseci
Novi kod iz istog programa za razbijanje.

Code:
 Private Sub picMain_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picMain.MouseDown

        'Handle mouse down events
        If e.Button = MouseButtons.Left Then
            Dim xPos As Int16 = e.X \ 15
            Dim yPos As Int16 = e.Y \ 15

            'Process the click based on the radio button checked
            If radStart.Checked Then
                StartX = xPos
                StartY = yPos
            ElseIf radEnd.Checked Then
                EndX = xPos
                EndY = yPos
            ElseIf radWall.Checked Then
                If Map(xPos, yPos).Wall = True Then
                    Map(xPos, yPos).Wall = False
                Else
                    Map(xPos, yPos).Wall = True
                End If
            End If

            'Redraw the box
            Render()

        End If

    End Sub


Deo koji mi nije jasan je:

Code:
        'Handle mouse down events
        If e.Button = MouseButtons.Left Then
            Dim xPos As Int16 = e.X \ 15
            Dim yPos As Int16 = e.Y \ 15


Nikako mi ne ulazi u glavu.

Izgleda ovako



Kad se klikne bilo koji kvadratić, treba da se oboji u određenu boju.

Šta onaj kod radi, pa se obeleži samo jedan kvadratić?
 
Odgovor na temu

AleXys
djak
Beograd

Član broj: 184909
Poruke: 134
*.dynamic.sbb.rs.

Sajt: seminarski.webege.com


Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu23.03.2010. u 11:30 - pre 171 meseci
Shvatio sam.

On uzima koordinate, pa ih posle prosleđuje u Render().

Ok.

Od vas mi samo treba objašnjenje za onaj deo iz preprošlog posta, o CellData.
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: [VB 2008] Deljenje pozadine i upisivanje u matricu23.03.2010. u 17:25 - pre 171 meseci
meni se ipak cini da to jeste matrica.
ispravno je sto ga nazivas tipom
new moze da izostane jer je structure value tip, kao int
 
Odgovor na temu

[es] :: .NET :: [VB 2008] Deljenje pozadine i upisivanje u matricu

[ Pregleda: 2438 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.