anoniem Geplaatst: 2 juli 2003 Delen Geplaatst: 2 juli 2003 Hoi, Ik heb een, naar mijn mening, vrij ingewikkeld probleem. Het gaat om het volgende: Ik ben een programma aan het maken waarbij ik in een PictureBox een lijn wil laten tekenen. Dat zijn verschillende lijnen, horizontaal een verticaal. Mijn probleem is nu dat ik wil dat als ik eerst een horizontale lijn heb getekend, dat ik de code dan zo kan schrijven dat als ik daarna een verticale lijn teken, dat die lijn dan bij de eerste horizontale lijn die hij tegenkomt stopt. Hoe doe ik dat?? Om het wat duidelijker te maken heb ik hier de code voor de picturebox(de andere code is niet belangrijk hiervoor): [code:1:e04ff56dc7] Private Sub picDiagram_Click() If actor = 1 Then picDiagram.Line (0, Yklikplek)-(6675, Yklikplek) End If If actor = 2 Then picDiagram.Line (300, (Yklikplek - 300))-(6675, (Yklikplek - 300)) picDiagram.Line (0, Yklikplek)-(6675, Yklikplek) picDiagram.Line (300, (Yklikplek - 300))-(300, Yklikplek) End If If actor = 3 Then 'nu wil ik de lijn die hier naar 0 loopt, slechts tot de eerstvolgende lijn hebben picDiagram.Line (300, (Yklikplek - 300))-(6675, (Yklikplek - 300)) picDiagram.Line (0, Yklikplek)-(6675, Yklikplek) picDiagram.Line (300, (Yklikplek - 300))-(300, 0) End If End Sub[/code:1:e04ff56dc7] Quote Link naar reactie
anoniem Geplaatst: 2 juli 2003 Auteur Delen Geplaatst: 2 juli 2003 je zou kunnen overwegen om met een timer de lijn stukje voor stukje t elaten tekenen. Je moet vooraf bepalen wat de X en Y waarden zijn van de getekende lijn. Als de timer loopt, kijk je naar de X en Y waarden van een nieuw te tekenen lijn. Quote Link naar reactie
anoniem Geplaatst: 3 juli 2003 Auteur Delen Geplaatst: 3 juli 2003 Ja, maar wat nou het probleem is, ik weet niet wat de x en y waardes gaan worden, omdat die worden gekozen door de plek waar de gebruiker klikt. Ik moet dus achteraf door een ander deel van de code kunnen laten bepalen waar de horizontale lijn zit, waar de nieuwe VERTICALE lijn moet stoppen, hoe doe ik dat dan??? Geef a.u.b een code voorbeeld als dat lukt dan kan ik er zelf wel aan sleutelen. Quote Link naar reactie
anoniem Geplaatst: 3 juli 2003 Auteur Delen Geplaatst: 3 juli 2003 om hoeveel lijnen gaat het nu eigenlijk ? Quote Link naar reactie
anoniem Geplaatst: 4 juli 2003 Auteur Delen Geplaatst: 4 juli 2003 Het gaat om een variabel aantal lijnen want er worden verschillende lijnen getekend als een gebruiker in het tekenveld klikt als hij een bepaalde knop actief heeft. Het aantal maakt echter niet uit, het gaat erom dat elke lijn die getekend wordt, de positie van de dichtsbijzijnde snijdende lijn moet weten, zodat hij daar kan stoppen. IS DIT WEL MOGELIJK ??? Quote Link naar reactie
anoniem Geplaatst: 6 juli 2003 Auteur Delen Geplaatst: 6 juli 2003 waarom zou het nietmogelijk zijn. Je hoeft niet zo te schreeuwen hoor.. Quote Link naar reactie
anoniem Geplaatst: 7 juli 2003 Auteur Delen Geplaatst: 7 juli 2003 [quote:0edce796a9="pc_freak17"]Mijn probleem is nu dat ik wil dat als ik eerst een horizontale lijn heb getekend, dat ik de code dan zo kan schrijven dat als ik daarna een verticale lijn teken, dat die lijn dan bij de eerste horizontale lijn die hij tegenkomt stopt. Hoe doe ik dat??[/quote:0edce796a9] Je laat hem de horizontalen lijn tekenen en als je dan begint met de verticale doe je dat pixel voor pixel. Je laat hem steeds even kijken of de volgende pixel al onderdeel is van een lijn. Zo ja, dan stop je met tekenen. Kijken of de volgende pixel al in gebruik is kan bv op de volgende manieren: 1) Als je alle lijnen dezelfde kleur geeft of iig een andere kleur dan de achtergrondkleur kun je daarop vergelijken. 2) Je kan een 2dimensionale array maken van booleans. Met voor elke pixel 1. Zodra een pixel onderdeel van een lijn wordt zet je de bijbehorende boolean. Quote Link naar reactie
anoniem Geplaatst: 31 juli 2003 Auteur Delen Geplaatst: 31 juli 2003 ok, heel erg bedankt. Ik zal het eens gaan proberen. Ik ben alleen nog niet zo goed op de hoogte van het tekenen van een lijn door individuele pixels. Ik weet dus niet hoe ik het programma laat herkennen of een pixel al bij een andere lijn hoort (of zoals jou voorbeeld, of een pixel al een andere kleur heeft). Zou je misschien een voorbeeldje kunnen geven van hoe dat moet??? (Ook het tekenen van de lijn zelf dus) Quote Link naar reactie
anoniem Geplaatst: 31 juli 2003 Auteur Delen Geplaatst: 31 juli 2003 [quote:96fa0aa0bb="pc_freak17"]ok, heel erg bedankt. Ik zal het eens gaan proberen. Ik ben alleen nog niet zo goed op de hoogte van het tekenen van een lijn door individuele pixels. Ik weet dus niet hoe ik het programma laat herkennen of een pixel al bij een andere lijn hoort (of zoals jou voorbeeld, of een pixel al een andere kleur heeft). Zou je misschien een voorbeeldje kunnen geven van hoe dat moet??? (Ook het tekenen van de lijn zelf dus)[/quote:96fa0aa0bb] Ik heb wel in JAVA een tekenprogramma gemaakt, je con hier met de muis een lijn tekenen. Ik weet nie of je dit bedoel? da ging zo: g.drawLine(x0[i], y0[i], x1[i], y1[i]) x0 en y0 zijn begin van de lijn en x1 en y1 het eind. g.drawLine is een verwijzing naar mijn telken gebied (canvas). als het vaste lijnen zijn zou je begin en eind punten kunnen opgegeven (in pixel). Maar dit is in JAVA, mischien helpt het je opweg Gr TP Quote Link naar reactie
anoniem Geplaatst: 31 juli 2003 Auteur Delen Geplaatst: 31 juli 2003 Het idee van jou, Sjoerd vind ik erg goed. Ik denk ook dat het op die manier wel lukt, maar nu heb ik één probleem. Ik kan er niet achter komen met welk commando je een pixel een bepaalde kleur geeft, kan iemand mij daar een voorbeeldje van geven??? Quote Link naar reactie
anoniem Geplaatst: 31 juli 2003 Auteur Delen Geplaatst: 31 juli 2003 Teken een lijn van 1 pixel lang... Quote Link naar reactie
anoniem Geplaatst: 1 augustus 2003 Auteur Delen Geplaatst: 1 augustus 2003 ja, dat kan inderdaad, maar hoe kan ik dan laten controleren of er over de volgende pixel al een lijn loopt, of hij dus al gekleurd is als ik de manier van sjoerd gebruik Quote Link naar reactie
anoniem Geplaatst: 3 augustus 2003 Auteur Delen Geplaatst: 3 augustus 2003 Een pixel kan je een bepaalde kleur geven met PSet. (zie help) Groeten, Wouter Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 nou heb ik nog 2 kleine probleempjes: - hoe gebruik ik het pset-commando (mijn help doet het om de een of andere reden niet). Kan iemand me een voorbeeldcode geven. - hoe laat ik met een commando checken of een pixel al een bepaalde kleur heeft?? (kan dit ook met pset, zo ja hoe dan) Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 Lekker is dat vb zonder help. Heb je dus geen bal aan maar ja... Pset: Object.Pset(x,y), kleur Object is bij jou dus je picture box, x is locatie op de x as en y is locatie op de y as. Kleur kan je opgeven in RGB of in QBColor Om te kijken welke kleur een pixel heeft kan je Point gebruiken Object.Point(x,y) Hierbij is je object weer de picture box, x locatie op de x as en y locatie op de y as! Het antwoord krijg je dan in RGB code. een voorbeeldje: Picture1.PSet(10 ,10), QBColor(10) MsgBox (Picture1.Point(10 ,10)) Denk overigens aan je drawmode en de drawstyle. Succes dermee, Groeten Wouter Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 heel erg bedankt, hiermee kan ik verder. Ik laat nog wel horen of het gelukt is. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen