| If you already have the unit, you may want to skip down to the user´s manual. | Falls du die Unit bereits hast, möchtest du vielleicht direkt zum Nutzerhandbuch springen. |
| The FJ_VGO1.pas (Falk Joensson´s Virtual Graphic Objects) is a unit I wrote to create graphics with Delphi. Yes, I know, there are some standard graphics routines included with Delphi. But mine are far more luxurious: with antialiasing (soft shapes instead of pixel edges), color rainbows and advanced ready-to-use algorithms. | Die FJ_VGO1.pas (Falk Joenssons Virtuelle graphische Objekte) ist eine Unit, die ich geschrieben habe, um Graphiken mit Delphi zu erstellen. Jaja, ich weiß, Delphi hat von Haus aus auch selber Graphikroutinen. Meine sind aber viel luxuriöser: mit Antialiasing (weiche Formen statt Pixelkanten), Farbspielen und sofort verwendbaren erweiterten Algorithmen. |
| First, download the packed unit, and unzip it to a directory on your harddrive, where you can easily find it. Then create a new VCL application with Delphi, and place a copy of the FJ_VGO1.pas in its directory. | DOWNLOAD FJ_VGO1.pas.zip (8,8 KB) | Lade zuerst die gepackte Unit herunter, und entzippe sie in ein Verzeichnis auf deiner Festplatte, so daß du sie leicht wiederfindest. Dann erstelle eine neue VCL-Anwendung mit Delphi, und kopiere die FJ_VGO1.pas mit in ihr Verzeichnis. |
The basic steps to use the FJ_VGO1.pas in a Delphi project are:
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, ExtCtrls,
FJ_VGO1; // 1.
type
TForm1 = class(TForm)
pic: TImage; // (2.)
procedure FormCreate(Sender: TObject); // (3.)
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
with pic.Picture.Bitmap do begin // 3.
Create; // 3.1.
Width := pic.Width; // 3.2.
Height := pic.Height; // 3.2.
PixelFormat := pf24bit; // 3.3.
end;
end;
end.
| Die grundlegenden Schritte, um die FJ_VGO1.pas in einem Delphi-Projekt zu nutzen, sind:
|
| We will now use the pic.OnClick to test the functions of the FJ_VGO1.pas. As the very basic (we will discuss the types and functions used later):
| Wir werden nun das pic.OnClick verwenden, um die Funktionen der FJ_VGO1.pas zu testen. Die absolute Grundlage (wir werden auf die verwendeten Elemente später noch eingehen):
|
| → | |
A Tiny Demo | Ein kleines Demo |
| After the monocolor intro a little peek ahead: Just by replacing the line 3 (VGO_clear) from the last example with four other lines, here is what FJ_VGO1.pas can do: | Nach dem einfarbigen Einstieg schonmal ein kleiner Vorgriff: Einfach durch das Ersetzen der Zeile 3 (VGO_clear) aus dem letzten Beispiel durch vier andere Zeilen kann FJ_VGO1.pas folgendes: |
| → | |
User´s Manual | Nutzerhandbuch |
type __VGOback to the index · zurück zum Index |
| All VGO_... procedures and functions work on a variable of this type. Think of it as a "virtual screen" or canvas, which is first drawn on until the image is done, before the result is shown on the actual physical screen (through a TImage) by calling VGO_displayX. | Alle mit VGO_... beginnenden Prozeduren und Funktionen arbeiten auf einer Variable dieses Typs. Am besten stellst du dir darunter einen "virtuellen Bildschirm" oder eine Leinwand vor, auf der gemalt wird, bis das Bild fertig ist. Erst dann wird es schließlich auf dem richtigen, physischen Bildschirm angezeigt (durch ein TImage), indem man VGO_displayX ausführt. |
type __GRBOback to the index · zurück zum Index |
| This record is used to store an ink information, which consists of three color channels (.G, .R, .B) and one opacity channel (.O), each represented by one Byte. | Dieser Record speichert eine Ink-Information ("ink" = englisch für "Tinte"), bestehend aus drei Farbkanälen (.G, .R, .B) und einem Deckkraft-Kanal (englisch: opacity) (.O). Jeder Kanal wird durch jeweils ein Byte repräsentiert. |
type __Inkback to the index · zurück zum Index |
| This is actually just a renamed Longword, to store an ink information (see type __GRBO) in a low-level VGO format ($OORRGGBB). Most VGO routines need colors to be given as __Ink. | Dies ist im Grunde nur ein umbenanntes Longword, und dient dem Speichern einer Ink-Information (siehe type __GRBO) in einem low-level VGO-Format ($OORRGGBB). Die meisten VGO-Routinen wollen Farben als __Ink übergeben haben. |
VGO_inkback to the index · zurück zum Index |
My preferred way of using colors in VGO is using the VGO_ink function, which wants a word that encodes an ink in nibbles, and returns an __Ink.
| Farben in VGO verwende ich am liebsten mit der VGO_ink-Funktion, die ein Word mit der Ink in Nibbles codiert haben möchte, und __Ink zurückgibt.
|
lInk := VGO_ink($369F); // same as lInk := $FF663399; |
type __RectAback to the index · zurück zum Index |
| This record stores the position (.x, .y) and size (.w, .h) of a rectangular area; all four items are Integer. The __RectA is mainly used to perform advanced operations on VGOs. | Dieser Record speichert die Position (.x, .y) und Größe (.w, .h) eines rechteckigen Bereichs; alle vier Angaben sind Integer. Verwendet wird __RectA vor allem, um komplexere Operationen auf VGOs auszuführen. |
MakeRectAback to the index · zurück zum Index |
Where a VGO routine wants a __RectA, you can simply input the values with the MakeRectA:
| Wenn eine VGO-Routine ein __RectA möchte, kannst du die Werte ganz einfach mit dem MakeRectA eingeben:
|
lRectA := MakeRectA(10,25,70,32);
{ same as:
lRectA.x := 10;
lRectA.y := 25;
lRectA.w := 70;
lRectA.h := 32;
}
|
VGO_setupback to the index · zurück zum Index |
In most cases, you will initialise a __VGO using the simpler VGO_setupX, but sometimes you may want to define some special properties: the "focus offset" and/or the overall opacity. (Both are almost only used in VGO_putMerge — see there.)
| In den meisten Fällen wirst du ein __VGO mit dem einfacheren VGO_setupX initialisieren, aber manchmal möchtest du vielleicht doch ein paar speziellere Eigenschaften setzen: den "Fokusversatz" und/oder die Gesamtdeckkraft. (Beide werden fast nur in VGO_putMerge verwendet — siehe dort.)
|
VGO_setup(lVGO,lW,lH,0,0,$FF); // same as VGO_setupX(lVGO,lW,lH); |
VGO_setupXback to the index · zurück zum Index |
Before you can do anything with a VGO, you first need to initialise it with this procedure.
| Ehe du irgendwas mt einem VGO anstellen kannst, mußt du es zunächst mit dieser Prozedur initialisieren.
|
VGO_setupX(lVGO1,pic.Width,pic.Height); // fits the pic VGO_setupX(lVGO2,160,90); // 160 by 90 pixels |
VGO_clearback to the index · zurück zum Index |
This is usually the first procedure you will use after VGO_setupX. The VGO will be "cleared" with a background color; ie all pixels of the VGO will be set to this very color.
| Dies ist normalerweise die erste Prozedure, die du nach VGO_setupX einsetzen wirst. Das VGO wird mit einer Hintergrundfarbe "gelöscht"; es werden also alle Pixel des VGOs auf diese Farbe gesetzt.
|
| → | |
VGO_clear4back to the index · zurück zum Index |
Now it gets interesting (and colorful). Instead of clearing a VGO with simply a solid background color (VGO_clear), you can define individual colors for all its corners, creating soft color sweeps with VGO_clear4.
| Jetzt wird es interessant (und bunt). Anstatt ein VGO mit einer schlichten Hintergrundfarbe zu versehen (VGO_clear), kannst du mit VGO_clear4 jeder Ecke eine eigene individuelle Farbe zuweisen, und weiche Farbverläufe werden dazwischen erzeugt.
|
| → | | |
| → | | |
| → | |
VGO_displayXback to the index · zurück zum Index |
After you have finished your VGO artwork, you might want to see it shown on a TImage. And that´s just what VGO_displayX does.
| Nachdem du dein VGO-Kunstwerk fertiggestellt hast, möchtest du es wahrscheinlich auch auf einem TImage dargestellt haben. Und genau das tut VGO_displayX.
|
VGO_displayX(pic,lVGO); // show our lVGO on the TImage pic |
VGO_killback to the index · zurück zum Index |
As a tidy person, you should clean up the data space when you don´t need a VGO anymore (eg in your form´s OnDestroy).
| Als ordnungsliebende Person solltest du den Dataspace aufräumen, wenn du ein VGO nicht mehr brauchst (etwa im OnDestroy deines Forms).
|
VGO_setPixelback to the index · zurück zum Index |
To set a pixel of the VGO to a desired ink (replacing the old one), use VGO_setPixel.
| Um ein Pixel des VGOs auf eine gewünschte Ink zu setzen (die alte wird durch diese ausgetauscht), verwende VGO_setPixel.
|
| → | |
VGO_putPixelback to the index · zurück zum Index |
To put an ink dot on a pixel (like drawing on it), use VGO_putPixel. This does not replace the old ink, but use it as a background for painting on with a more or less transparent ink.
| Um einen Ink-Tropfen auf ein Pixel aufzutragen, verwende VGO_putPixel. Die alte Ink wird dadurch nicht ersetzt, sondern ist Hintergrundfarbe für die mehr oder weniger transparente oFrom.
|
| → | |
VGO_drawPointback to the index · zurück zum Index |
If you want to draw a point that may have a position that does not sit directly on the bitmap pixel grid, you can use VGO_drawPoint, which will interpolate it (like a digital camera would).
| Wenn du einen Punkt malen möchtest, dessen Position nicht unbedingt direkt auf dem Bitmap-Pixel-Gitter liegt, kannst du VGO_drawPoint verwenden, das sich um die Interpolation kümmert (funktioniert wie eine digitale Kamera).
|
| → | |
VGO_setLineback to the index · zurück zum Index |
Use this to replace all the pixels along a line with a desired ink.
| Verwende dies, um alle Pixel entlang einer Linie mit einer gewünschten Ink zu ersetzen.
|
| → | |
VGO_setLineDottedback to the index · zurück zum Index |
This does the same as VGO_setLine, but skips every second pixel.
| Dies macht das gleiche wie VGO_setLine, überspringt aber jeden zweiten Pixel.
|
| → | |
VGO_putLineback to the index · zurück zum Index |
To draw a more or less transparent pixel line on the VGO, use VGO_putLine.
| Verwende VGO_putLine, um eine mehr oder weniger transparente Pixel-Linie auf dem VGO zu malen.
|
| → | |
VGO_drawLineback to the index · zurück zum Index |
For smooth lines without pixel jumps, use VGO_drawLine. The position for the starting and the end point are Real, so you are not restricted to the bitmap pixel grid.
| Für weiche Linien ohne Pixelsprünge, verwende VGO_drawLine. Die Position des Start- und des Endpunkts sind Real, du bist also nicht an das Bitmap-Pixel-Gitter gebunden.
|
| → | |
VGO_drawLine2back to the index · zurück zum Index |
This works like VGO_drawLine, but you can define a different ink for the starting and for the end point. The procedure will interpolate the color smoothly between them.
| Funktioniert wie VGO_drawLine, du kannst dem Start- und dem Endpunkt jedoch unterschiedliche Inks geben. Die Prozedur interpoliert zwischen beiden einen weichen Farbverlauf.
|
| → | |
VGO_drawRingback to the index · zurück zum Index |
To draw a circle ring (antialiased) on the VGO.
| Dient dem Zeichnen eines Kreisrings (antialiased) auf dem VGO.
|
| → | |
VGO_drawTorusback to the index · zurück zum Index |
If you want to draw a thick ring, or even a filled circle, use VGO_drawTorus, which lets you define and inner and an outer diameter.
| Wenn du einen dicken Ring oder sogar eine Kreisscheibe zeichnen möchtest, dann verwende VGO_drawTorus, bei dem du einen inneren und einen äußeren Durchmesser angeben kannst.
|
| → | |
VGO_drawTorus2back to the index · zurück zum Index |
This lets you draw a torus with a smooth ink gradient from inner to outer diameter.
| Hiermit kannst du einen Torus zeichnen, der einen weichen Farbverlauf vom Innen- zum Außendurchmesser aufweist.
|
| → | | |
| → | |
VGO_setRectback to the index · zurück zum Index |
To set all pixels of a rectangular region in the VGO to a desired ink.
| Dient dazu, alle Pixel eines rechteckigen Bereichs des VGOs auf eine gewünschte Ink zu setzen.
|
| → | |
VGO_putRectback to the index · zurück zum Index |
To tint a rectangular region in the VGO with a desired (more or less transparent) ink.
| Dient dazu, einen rechteckigen Bereichs des VGOs mit einer gewünschten (mehr oder weniger transparenten) Ink zu bemalen.
|
| → | |
VGO_putRect4back to the index · zurück zum Index |
To draw a filled rectangle with smooth ink transitions between individually colored corners.
| Dient zum Malen eines gefüllten Rechtecks mit weichen Ink-Verläufen zwischen jeweils andersfarbigen Ecken.
|
| → | |
VGO_markupRectback to the index · zurück zum Index |
This XOR-es a rectangular area of the VGO with a desired ink.
| Dies XOR-t einen rechteckigen Bereich des VGOs mit einer gewünschten Ink.
|
| → | |
VGO_setBorderback to the index · zurück zum Index |
To set all pixels of a rectangular frame with a desired width to a certain ink. Returns the inner region within the border.
| Dient dazu, alle Pixel eines rechteckigen Rahmens von gewünschter Breite auf eine bestimmte Ink zu setzen. Gibt den Bereich innerhalb des Rahmens zurück.
|
| → | | |
| → | |
VGO_putBorderback to the index · zurück zum Index |
To draw a rectangular frame with a desired width and a certain (more or less transparent) ink. Returns the inner region within the border.
| Dient dazu, einen rechteckigen Rahmen von gewünschter Breite und mit einer bestimmten Ink zu malen. Gibt den Bereich innerhalb des Rahmens zurück.
|
| → | |
VGO_setBorder2back to the index · zurück zum Index |
Works like VGO_setBorder, but you can define different colors for the inner and the outer edge, between which a smooth color transition will be generated. Returns the inner region within the border.
| Funktioniert wie VGO_setBorder, du kannst aber der Innen- und der Außenkante jeweils eine andere Farbe zuweisen, zwischen denen ein weicher Farbverlauf generiert wird. Gibt den Bereich innerhalb des Rahmens zurück.
|
| → | |
VGO_putBorder2back to the index · zurück zum Index |
Works like VGO_putBorder, but you can define different colors for the inner and the outer edge, between which a smooth color transition will be generated. Returns the inner region within the border.
| Funktioniert wie VGO_putBorder, du kannst aber der Innen- und der Außenkante jeweils eine andere Farbe zuweisen, zwischen denen ein weicher Farbverlauf generiert wird. Gibt den Bereich innerhalb des Rahmens zurück.
|
| → | |
VGO_outlineback to the index · zurück zum Index |
Now this is a very special procedure. It creates an outline around all non-fully-transparent pixels of the VGO, and works therefore only on non-solid VGOs. (Such are usually not directly displayed on a TImage, but rather used as stamp on a background VGO, which is then eventually displayed.)
| Dies ist eine sehr spezielle Procedure. Sie erzeugt eine Umrandungslinie um alle nicht komplett transparenten Pixel des VGOs, und funktioniert daher nur bei nicht-soliden VGOs. (Solche werden für gewöhnlich nicht direkt auf einem TImage angezeigt, sondern als Stempel auf einem Hintergrund-VGO eingesetzt, welches dann schließlich angezeigt wird.)
|
| → | | |
| → | | |
| → | |
VGO_framerback to the index · zurück zum Index |
This function creates an attractive 3D frame (4 modes available) and returns the inner region within it.
| Diese Function erzeugt einen attraktiven 3D-Rahmen (4 Modi verfügbar) und gibt den von ihm eingeschlossenen Bereich zurück.
|
| → | | |
| → | | |
| → | | |
| → | | |
| → | |
VGO_framerPlusback to the index · zurück zum Index |
Works like VGO_framer, but offers additional shading: down-frames will render the inner region darker, up-frames lighter. Returns the inner region within the frame.
| Funktioniert wie VGO_framer, bietet aber zusätzlich eine Helligkeitsanpassung (Shading): Niederrahmen machen den inneren Bereich dunkler, Hochrahmen heller. Gibt den vom Rahmen eingeschlossenen Bereich zurück.
|
| → | | |
| → | |
VGO_screenCaptureback to the index · zurück zum Index |
This captures what is visible on the screen in a rectangular region of interest, and makes a VGO from it. (There´s no need to VGO_setupX the VGO before.)
| Dies fotografiert gewissermaßen einen rechteckigen Bereich dessen, was gerade auf dem Bildschirm zu sehen ist, und erstellt daraus ein VGO. (Das VGO braucht dazu nicht zuvor mit VGO_setupX initialisiert worden zu sein.)
|
| → | |
VGO_simpleBlurback to the index · zurück zum Index |
Use this to blur a VGO image by a desired degree. Warning: setting oSize to high values will take a long time to compute (and the result won´t be that pretty anyhow)!
| Verwende dies, um ein VGO-Bild unscharf zu machen. Warnung: hohe Werte für oSize bedeuten einen sehr langen Rechenaufwand (und das Ergebnis wird nichtmal sonderlich schön aussehen)!
|
| → | | |
| → | | |
| → | | |
| → | | |
| → | |
VGO_grainback to the index · zurück zum Index |
Creates some random pixel noise (the intensity is your choice) on the VGO.
| Erzeugt zufälliges Pixelrauschen (voreinstellbare Intensität) auf dem VGO.
|
| → | | |
| → | | |
| → | | |
| → | | |
| → | | |
| → | | |
| → | |
VGO_scanlinesback to the index · zurück zum Index |
This generates black scanlines like on an old computer screen (selectable intensity).
| Dies erzeugt schwarze Rasterlinien, wie auf einem alten Computerbildschirm (wählbare Intensität).
|
| → | | |
| → | | |
| → | |
VGO_duplicateback to the index · zurück zum Index |
With this procedure you can create a duplicate copy of a VGO.
| Mit dieser Procedure kannst du eine Kopie von einem VGO erzeugen.
|
VGO_setMergeback to the index · zurück zum Index |
This lets you replace a region of a VGO with a second VGO.
| Dies ermöglicht das Ersetzen eines Bereichs eines VGOs durch ein zweites VGO.
|
| → | |
VGO_putMergeback to the index · zurück zum Index |
This lets you stamp a VGO onto another.
| Hiermit kannst du ein VGO auf ein anderes aufstempeln.
|
| → | | |
| → | | |
| → | |
VGO_setCopyback to the index · zurück zum Index |
To replace a rectangular area of a VGO with one from another VGO.
| Dient dem Ersetzen eines rechteckigen Bereichs in einem VGO durch einen aus einem anderen VGO.
|
| → | |
VGO_putCopyback to the index · zurück zum Index |
To stamp a rectangular area out of a VGO onto another one.
| Dient dem Stempeln eines rechteckigen Bereichs aus einem VGO auf ein anderes.
|
| → | |
VGO2BMPback to the index · zurück zum Index |
Use this if you want to save an image created as a VGO to a TBitmap (which does not need to have been initialized before).
| Verwende dies, wenn du ein als VGO erstelltes Bild in ein TBitmap speichern möchtest. Das TBitmap mußt du vorher nicht extra initialisieren.
|
BMP2VGOback to the index · zurück zum Index |
Use this if you want to create a VGO from a TBitmap image. The VGO doesn´t need to be initialized before.
| Verwende dies, wenn du ein VGO von einem TBitmap-Bild erzeugen möchtest. Das VGO mußt du vorher nicht extra initialisieren.
|
VGO_setOpacityback to the index · zurück zum Index |
To change the opacity of a single pixel in a VGO.
| Dient dem Ändern der Deckkraft eines einzelnen Pixels in einem VGO.
|
VGO_mulOpacityback to the index · zurück zum Index |
To fade the opacity of a single pixel in a VGO down.
| Dient dem multiplikativen Verblassen der Deckkraft eines einzelnen Pixels in einem VGO.
|
| = |
|
VGO_fadeOpacityback to the index · zurück zum Index |
To fade the opacity of all pixels in a VGO down.
| Dient dem multiplikativen Verblassen der Deckkraft sämtlicher Pixel eines VGOs.
|
| → | |
VGO_GRBO2Inkback to the index · zurück zum Index |
Transforms a __GRBO into an __Ink.
| Überträgt einen __GRBO in eine __Ink.
|
VGO_Ink2GRBOback to the index · zurück zum Index |
Transforms an __Ink into a __GRBO.
| Überträgt eine __Ink in einen __GRBO.
|
VGO_TColor2Inkback to the index · zurück zum Index |
Transforms a TColor into an ink. This also supports local Windows color codes!
| Überträgt eine TColor in eine Ink. Dies funktioniert sogar mit lokalen Windows-Farbcodes!
|
| → | |
VGO_getPixelback to the index · zurück zum Index |
Returns the ink value of a pixel on a VGO.
| Gibt den Ink-Wert eines Pixel aus einem VGO zurück.
|
| → |
VGO_getOpacityback to the index · zurück zum Index |
Returns the opacity value of a pixel´s ink on a VGO.
| Gibt den Deckkraft-Wert der Ink eines Pixels aus einem VGO zurück.
|
VGO_Xback to the index · zurück zum Index |
| Returns a byte that represents a weighted mix of an ink´s three color channels. (Setting the weights to 1,1,1 is the same as 93,93,93 or $FF,$FF,$FF - important is only the relative balance of the values to each other! Therefore, 1,2,3 equals 2,4,6 and 15,30,45 and so on.)
| Gibt ein Byte zurück, das für eine gewichtete Mischung der drei Farbkanäle einer Ink steht. (Die Wichtungen auf 1,1,1 zu setzen ist das gleiche wie 93,93,93 oder $FF,$FF,$FF - entscheidend ist allein das relative Verhältnis der Werte zueinander! Daher macht auch 1,2,3 das Gleiche wie 2,4,6 und 15,30,45 und so weiter.)
|
| → | |
| → | |
| → | |
| → | |
| → | |
VGO_Sback to the index · zurück zum Index |
Returns the color saturation value (Byte) of an ink. $00 is totally greyscale (black, grey or white), $FF is a most vivid color.
| Gibt den Farbsättigungswert einer Ink als Byte zurück. $00 ist völlig farblos (schwarz, grau oder weiß), knallbunte Farben ergeben $FF.
|
| → | | |
| → | |
CopyGRBOback to the index · zurück zum Index |
This just copies a GRBO into another one.
| Dies kopiert lediglich einen GRBO in einen zweiten.
|
VGO_blendInksback to the index · zurück zum Index |
This lets you mix two inks using a desired mixing ratio, to get a new ink out of it (as with a painter´s palette).
| Hiermit kannst du zwei Inks in einem gewünschten Verhältnis zusammenmischen, um eine neue Ink zu erhalten (wie bei einer Malpalette).
|
CopyRectAback to the index · zurück zum Index |
This just copies a RectA into another one.
| Dies kopiert lediglich ein RectA in ein zweites.
|
InRectAback to the index · zurück zum Index |
This tests if a point lies within a rectangular area of interest, and returns the Boolean answer.
| Dies prüft, ob ein Punkt innerhalb eines bestimmten rechteckigen Bereichs liegt, und gibt die Antwort als Boolean zurück.
|
ModifyRectAback to the index · zurück zum Index |
You can use this to modify a RectA.
| Dies kannst du verwenden, um ein RectA zu modifizieren.
|
| → | |
TrimRectALback to the index · zurück zum Index |
Use this if you want to modify only the left side of a RectA, but keep the other three sides where they are.
| Verwende dies, wenn du nur die linke Seite eines RectAs verändern willst, die anderen drei Seiten aber nicht.
|
| → | | |
| → | |
TrimRectARback to the index · zurück zum Index |
Use this if you want to modify only the right side of a RectA, but keep the other three sides where they are.
| Verwende dies, wenn du nur die rechte Seite eines RectAs verändern willst, die anderen drei Seiten aber nicht.
|
| → | |
TrimRectATback to the index · zurück zum Index |
Use this if you want to modify only the top side of a RectA, but keep the other three sides where they are.
| Verwende dies, wenn du nur die obere Seite eines RectAs verändern willst, die anderen drei Seiten aber nicht.
|
| → | |
TrimRectABback to the index · zurück zum Index |
Use this if you want to modify only the bottom side of a RectA, but keep the other three sides where they are.
| Verwende dies, wenn du nur die untere Seite eines RectAs verändern willst, die anderen drei Seiten aber nicht.
|
| → | |