| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Grafik: Bereiche vereinigen
Def @Unionrect(3) !User32,UnionRect
UnionRect ermittelt die Eckpunkte zu einem Rahmen, der zwei rechteckige Bereiche einschließt.
Parameter:B1(Param.1 Bereich ) - RECT Struktur oder 16Byte große Bereichsvariable, die die Eckpunkte des Rahmens um die Rechtecke aufnimmt.Bytes Bedeutung
0-3 = X-Koordinate der linken oberen Ecke des Rahmens.
4-7 = Y-Koordinate der linken oberen Ecke des Rahmens.
8-11 = X-Koordinate der rechten unteren Ecke des Rahmens.
12-15 = Y-Koordinate der rechten unteren Ecke des Rahmens.
B2(Param.2 Bereich ) - RECT Struktur oder 16Byte große Bereichsvariable, die die Eckpunkte des ersten Rechtecks angibt.Bytes Bedeutung
0-3 = X-Koordinate der linken oberen Ecke des Rechtecks.
4-7 = Y-Koordinate der linken oberen Ecke des Rechtecks.
8-11 = X-Koordinate der rechten unteren Ecke des Rechtecks.
12-15 = Y-Koordinate der rechten unteren Ecke des Rechtecks.
B3(Param.3 Bereich ) - RECT Struktur oder 16Byte große Bereichsvariable, die die Eckpunkte des zweiten Rechtecks angibt.Bytes Bedeutung
0-3 = X-Koordinate der linken oberen Ecke des Rechtecks.
4-7 = Y-Koordinate der linken oberen Ecke des Rechtecks.
8-11 = X-Koordinate der rechten unteren Ecke des Rechtecks.
12-15 = Y-Koordinate der rechten unteren Ecke des Rechtecks.
Der Bereich kann auch mit einer Struktur vereinfacht werden:
STRUCT XY = X1&,Y1&,X2&,Y2&
oder (Elemente haben andere Namen):
$H structs.ph
STRUCT XY = ~Rect
Declare Bild$,Ende%,Rect1#,Rect2#,Rectu#
Declare X1&,Y1&,X2&,Y2&
Def @Unionrect(3) !User32,UnionRect
Chdir $Winpath
Let Bild$ = @Findfirst$(*.BMP)
Windowstyle 31
Windowtitle Bereiche Vereinigen
Window 0,0 - 640,440
While 0 = 0
Cls
Randomize
Let X1& = @Rnd(600)
Let X2& = @Rnd(600)
Let Y1& = @Rnd(400)
Let Y2& = @Rnd(400)
Loadsizedbmp Bild$, X1&,Y1& - 30,30; 0
Loadsizedbmp Bild$, X2&,Y2& - 30,30; 0
Dim Rect1#,16
Dim Rect2#,16
Dim Rectu#,16
Long Rect1#,0 = X1&
Long Rect1#,4 = Y1&
Long Rect1#,8 = X1& + 30
Long Rect1#,12 = Y1& + 30
Long Rect2#,0 = X2&
Long Rect2#,4 = Y2&
Long Rect2#,8 = X2& + 30
Long Rect2#,12 = Y2& + 30
@Unionrect(Rectu#, Rect1#, Rect2#)
Usebrush 0,0
Usepen 0,1,@Rgb(32,0,0)
Rectangle @Long(Rectu#,0), @Long(Rectu#,4) - @Long(Rectu#,8), @Long(Rectu#,12)
Dispose Rect1#
Dispose Rect2#
Dispose Rectu#
Waitinput
Endwhile
|
|
|
| |
|
|