Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Monikulmiot VB:llä

Sivun loppuun

moptim [20.08.2006 21:15:30]

#

Elikkäs; miten Visual Basicilla voisi tehdä (halutun värisen) täytetyn nelikulmion? Mielellään suhteellisen nopea, API-kutsut sallittuja.

Blaze [20.08.2006 21:18:57]

#

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_7#piirtokomennot

moptim [21.08.2006 14:36:51]

#

siis ei suorakulmio vaan nelikulmio, ja täytetty kiitos!

miiro [21.08.2006 15:02:14]

#

Kyllähän sä voit soveltaa tota koodia niin, että se tekee nelikulmion...vai etkö? Eikö tuossa koodissa ole määritetty kaikille pisteille arvot? Ja mielestäni ainakin yksi noista koodeista näyttäisi värjäävänkin kulmion (BF-flagi perässä)

Tumpelo [21.08.2006 15:06:27]

#

KingOfTheWorld kirjoitti:

siis ei suorakulmio vaan nelikulmio

Tuo oli kyllä päivän paras! "Ei, en saa suorakulmiosta nelikulmiota muuttamalla kulmien koordinaatteja."

Cornix [21.08.2006 15:12:21]

#

tässä nyt tosiaa kysyttii nelikulmiota, ei neliötä.

hunajavohveli [21.08.2006 15:17:09]

#

API-kutsuista en tiedä, mutta jos itse haluaa yrittää (ei välttämättä nopeuden puolesta kannattavaa VB:llä), niin minä lähtisin tekemään aluksi algoritmia, joka täyttää kolmion. Kolmioista voi sitten yhdistellä nelikulmioita tai millaisia kulmioita tahansa.

setä [21.08.2006 17:26:19]

#

VB:n omilla piirtokäskyillä tosiaan saa vain suorakulmion. Koodaa itse yksinkertainen koodi, jolla piirrät monikulmion. Api-kutsulla sen voi täyttää värillä.
Private Declare Function ExtFloodFill Lib "Gdi32" (ByVal hdc As Long, ByVal X As Long, _
ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long

moptim [21.08.2006 18:03:25]

#

ja miten mä hankin kaiken maailman hdc:t siihen tuherrukseeni?
ja hunajavohvelille vielä: kyllä minä yritin tehdä kolmion
täyttävää algoritmia.

Blaze [21.08.2006 18:12:16]

#

KingOfTheWorld kirjoitti:

ja miten mä hankin kaiken maailman hdc:t siihen tuherrukseeni?

Kysymällä siltä objektilta, johon haluat piirtää.
Esim.

MunHdc = MunPictureBoxi.hdc 'Kokeillaan, jos Pictureboxi ois niin kiltti, että viitsisi kertoa tuon

moptim [21.08.2006 18:17:22]

#

kiitti blaze, setä, hunajavohveli, cornix, tumpelo ja miiro
EDIT: jos sais viel esimerkin

setä [21.08.2006 20:42:19]

#

https://www.ohjelmointiputka.net/keskustelu/4603-fill-efekti

Antti Laaksonen [22.08.2006 14:45:15]

#

WinAPIn Polygon-funktiota voi myös käyttää yhteistyössä VB:n kanssa:

Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Sub Form_Click()
    Dim kuvio(4) As POINTAPI

    ' määritetään nelikulmion neljä pistettä
    kuvio(0).x = 50
    kuvio(0).y = 10
    kuvio(1).x = 90
    kuvio(1).y = 50
    kuvio(2).x = 50
    kuvio(2).y = 90
    kuvio(3).x = 10
    kuvio(3).y = 50

    ' valitaan täyttötapa ja täyttöväri
    FillStyle = 0
    FillColor = vbBlue

    ' piirretään monikulmio
    Polygon Me.hdc, kuvio(0), 4
End Sub

Funktion parametrit ovat piirtoalueen hdc, taulukon ensimmäinen alkio ja kulmapisteiden määrä.

moptim [22.08.2006 19:03:55]

#

Antti Laaksosen nimi vielä kiitettävien listaan ja vielä kerran kiitokset kaikille!


Sivun alkuun

Vastaus

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

Tietoa sivustosta