Hallo
Also ich habe 2 Bilder : Picture1 und Picture2 jetzt soll Picture2 unsichtbar werden sobald Picture1 es berürt.Wie geht das in VB?
Bitte nicht so kompliziert antworten.
Danke
Also ich habe 2 Bilder : Picture1 und Picture2 jetzt soll Picture2 unsichtbar werden sobald Picture1 es berürt.Wie geht das in VB?
Bitte nicht so kompliziert antworten.
Danke
ähm!
ich kenn mich zwar nicht in vb aus aber ich versuchs mal:
du machst eine kollisionskontrolle zwischen den bildern und wenn das zutrifft, zeichnest du einfach pic2 nicht mehr..
ich kenn mich zwar nicht in vb aus aber ich versuchs mal:
du machst eine kollisionskontrolle zwischen den bildern und wenn das zutrifft, zeichnest du einfach pic2 nicht mehr..
und ich kann gar kein basic!
du wirst ja wissen, wie man die bilder zeichnet..
da kannst du doch einfach mit einer if abfrage dann das 2. bild zeichnen
wegen der kollision:
du hast die x und y position der beiden bilder
dann noch die größe->
in c++ würde das ungefähr so aussehen:
bool kollision(int x1, int x2, int y1, int y2, int g1, int g2)
{
if(x1+g1<x2&&x2+g2<x1&&y1+g1<y2&&y2+g2<y1)
return false;
else
return true;
}
ich glaube aber, dass das nicht stimmt :)
du wirst ja wissen, wie man die bilder zeichnet..
da kannst du doch einfach mit einer if abfrage dann das 2. bild zeichnen
wegen der kollision:
du hast die x und y position der beiden bilder
dann noch die größe->
in c++ würde das ungefähr so aussehen:
bool kollision(int x1, int x2, int y1, int y2, int g1, int g2)
{
if(x1+g1<x2&&x2+g2<x1&&y1+g1<y2&&y2+g2<y1)
return false;
else
return true;
}
ich glaube aber, dass das nicht stimmt :)
Kann auch kein VB, aber von der Theorie her müsste das ungefähr so aussehen:
Du berechnest die vier Ecken von Bild 1 und überprüfst dann für jede ob sie sich innerhalb von Bild 2 befindet. Wenn ja, lässt du das Bild verschwinden, wenn nicht dann halt nicht.
Das Überprüfen könnte aber kompliziert werden, wenn die Bilder nicht rechteckig sind.
Du berechnest die vier Ecken von Bild 1 und überprüfst dann für jede ob sie sich innerhalb von Bild 2 befindet. Wenn ja, lässt du das Bild verschwinden, wenn nicht dann halt nicht.
Das Überprüfen könnte aber kompliziert werden, wenn die Bilder nicht rechteckig sind.
oder noch einfacher mit 3D
->
bild 1 hat die koordinaten(x,y,0)
bild 2 (x,y,-0.001)
dann ist bild 2 immer da "durchsichtig", wo sich die bilder überschneiden
->
bild 1 hat die koordinaten(x,y,0)
bild 2 (x,y,-0.001)
dann ist bild 2 immer da "durchsichtig", wo sich die bilder überschneiden
Hm, das ist genau das selbe nur mit einer (nicht benutzten) Koordinate mehr... ;)
Im Prinzip auch egal ob BB, VB, oder C++.
Wenn du die Bilder als Rechtecke sehen kannst, dann hast du ja vom Bild1 die X1, Y1, Breite1, Länge1 vom Bild2 natürlich auch (X2, Y2, Breite2, Länge2).
Dann kannst du ja ne Funktion schreiben so in etwa wie Coder das vorschlug.
In ihr prüfst du ob die Eckpunkte vom Bild 2 im Bereich (X1 bis X1+Länge1) von Bild 1 liegen.
Sollte dann so für die X-Achse aussehen.
(X1+Länge1) < X2 > X1 OR (X1+Länge1) < (X2+Länge2) > X1 AND
jetzt für die Y-Achse.
(Y1+Breite1) < Y2 > Y1 OR (Y1+Breite1) < (Y2+Breite2) > Y1
Das war´s dann auch schon. Noch ein Rückgabewert bei Bool.
Jetzt lässt du Picture2 nur dann zeichnen wenn keine Kollision stattfindet. Also:
if(keine Kollision) draw Picture2
in VB wohl so (keine Garantie) ;)
If ( Kollision(Hier die entsprechenden Werte) ) = 0 Then
Draw Picture
PS: Ich bin mal davon ausgegangen, dass der Ursprung in der oberen linken Ecke ist...
Wenn du die Bilder als Rechtecke sehen kannst, dann hast du ja vom Bild1 die X1, Y1, Breite1, Länge1 vom Bild2 natürlich auch (X2, Y2, Breite2, Länge2).
Dann kannst du ja ne Funktion schreiben so in etwa wie Coder das vorschlug.
In ihr prüfst du ob die Eckpunkte vom Bild 2 im Bereich (X1 bis X1+Länge1) von Bild 1 liegen.
Sollte dann so für die X-Achse aussehen.
(X1+Länge1) < X2 > X1 OR (X1+Länge1) < (X2+Länge2) > X1 AND
jetzt für die Y-Achse.
(Y1+Breite1) < Y2 > Y1 OR (Y1+Breite1) < (Y2+Breite2) > Y1
Das war´s dann auch schon. Noch ein Rückgabewert bei Bool.
Jetzt lässt du Picture2 nur dann zeichnen wenn keine Kollision stattfindet. Also:
if(keine Kollision) draw Picture2
in VB wohl so (keine Garantie) ;)
If ( Kollision(Hier die entsprechenden Werte) ) = 0 Then
Draw Picture
PS: Ich bin mal davon ausgegangen, dass der Ursprung in der oberen linken Ecke ist...
Frage:
Wenn ein Bild ausgeschnitten werden soll... also überdeckt, damit die Hälfte weg ist...
Wieso schneidet man das Bild nicht einfach zu, und ladet es dann erst rein?
Wenn ein Bild ausgeschnitten werden soll... also überdeckt, damit die Hälfte weg ist...
Wieso schneidet man das Bild nicht einfach zu, und ladet es dann erst rein?
Logge dich ein um einen Beitrag zu schreiben.