Source

bluebrick.bitbucket.org / Help / de / Part_XML_Description_Hull.htm

Full commit
<HTML>
<HEAD>
<META NAME="keywords" CONTENT="BlueBrick, Help">
<META NAME="description" CONTENT="The reference documentation for BlueBrick.">
<META NAME="author" CONTENT="Alban Nanty">
<LINK REL=StyleSheet HREF="../BlueBrick.css" TYPE="text/css" MEDIA=screen>
<Title>Beschreibung der Hüllkurve</Title>
</HEAD>
<BODY>
<H1>Beschreibung der Hüllkurve</H1>

<TABLE CLASS="XMLDescription">
<TR>
	<TD CLASS="Tilte">Syntax:</TD>
	<TD CLASS="XMLCode">&lt;hull&gt;<BR>
		&nbsp;&nbsp;&nbsp;&nbsp;&lt;point&gt;<BR>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;x&gt;...&lt;/x&gt;<BR>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;y&gt;...&lt;/y&gt;<BR>
		&nbsp;&nbsp;&nbsp;&nbsp;&lt;/point&gt;<BR>
		&nbsp;&nbsp;&nbsp;&nbsp;...<BR>
		&lt;/hull&gt;	
	</TD>
</TR><TR>
	<TD CLASS="Tilte">Standardwert:</TD>
	<TD>Die vier Ecken eines Bildes werden als Standardwert benutzt.</TD>
</TR><TR>
	<TD CLASS="Tilte">Beschreibung:</TD>
	<TD>Die Hüllkurve ist eine aus mehreren Geraden zusammengesetzte, geschlossene Linie, innerhalb derer sich das gesamte Teil inklusive hervorstehender Komponenten befindet. Die Hüllkurve wird durch eine Liste von Punkten definiert, deren <FONT CLASS="Important">Koordinaten in Pixel</FONT>, ausgehend von der oberen linken Ecke des Bildes, angegeben werden.</TD>
</TR>
</TABLE>

<P>Die Hüllkurve ist für nicht rechteckige Teile, wie z.B. Gleiskurven, nützlich. Bluebrick benutzt die Hüllkurve, um die das kleinste Rechteck zu berechnen, in das dieses Teil passt. Dabei ist dieses Rechteck immer parallel zu den Achsen ausgerichtet. Wenn ein Teil im Gleisplan ausgewählt wird, wird um das ausgewählte Teil ein Rechteck gelegt und der Bereich innerhalb dieses Rechtecks wird aufgehellt. Dieses Rechteck wird mit Hilfe der Hüllkurve berechnet. Die Hüllkurve hat einen Einfluss auf den von BlueBrick benötigten Speicherplatz, denn die Hüllkurve beeinflusst die Größe des bei einer Drehung eines Teils zu erstellenden Bildes . Eine Hüllkurve sollte daher mit sowenig Punkten wie möglich erzeugt werden, um die Leistung von BlueBrick nicht unnötig zu beeinträchtigen.</P>

<P>Die Hüllkurve wird, im Gegensatz zu den vorherigen Parametern, <FONT CLASS="Important">in Pixel- und nicht in Noppen-Koordinaten</FONT> angegeben. Wird nämlich in einem Bildbearbeitungsprogramm die Maus über dem Bild bewegt, lassen sich die aktuellen Koordinaten der Mausposition direkt in Pixel ablesen. Die Eckpunkte der Hüllkurve lassen sich also einfach in Pixel bestimmen.</P>

<P>Eine falsche Hüllkurve kann dazu führen, dass Teilbereiche eines Teils bei der Drehung um einen beliebigen Winkel abgeschnitten werden. Eine gute Möglichkeit zum Testen der Hüllkurve ist die Drehung dieses Teils um 360&deg; in kleinen Schritten, z.B. 22.5&deg;. Nach jedem Schritt darf kein Bereich des Teils abgeschnitten sein.</P>

<P>Nachfolgend zwei Beispiele einer Hüllkurve, eine 9V-Weiche und ein 9V Kurvengleis:</P>

<CENTER><IMG SRC="../HullSwitchPoint.png">&nbsp;&nbsp;&nbsp;&nbsp;<IMG SRC="../HullCurve.png"></CENTER>
<BR>

<DIV CLASS="TechNote">
<PRE><B>Der zur Beschreibung der Hüllkurve der 9V-Weiche gehörende Teil der XML-Datei sieht wie folgt aus:</B>

&lt;hull&gt;
    &lt;point&gt;
        &lt;x&gt;258&lt;/x&gt;
        &lt;y&gt;0&lt;/y&gt;
    &lt;/point&gt;
    &lt;point&gt;
        &lt;x&gt;280&lt;/x&gt;
        &lt;y&gt;52&lt;/y&gt;
    &lt;/point&gt;
    &lt;point&gt;
        &lt;x&gt;264&lt;/x&gt;
        &lt;y&gt;166&lt;/y&gt;
    &lt;/point&gt;
    &lt;point&gt;
        &lt;x&gt;0&lt;/x&gt;
        &lt;y&gt;166&lt;/y&gt;
    &lt;/point&gt;
    &lt;point&gt;
        &lt;x&gt;0&lt;/x&gt;
        &lt;y&gt;102&lt;/y&gt;
    &lt;/point&gt;
    &lt;point&gt;
        &lt;x&gt;19&lt;/x&gt;
        &lt;y&gt;53&lt;/y&gt;
    &lt;/point&gt;
&lt;/hull&gt;
</PRE>
</DIV>

<P>Die Reihenfolge der Punkte ist unbedeutend. Auch ist unbedeutend, mit welchem Punkt begonnen und mit welchem aufgehört wird. BlueBrick erzeugt die Hüllkurve aus der Gesamtheit der einzelnen Punkte. Es ist jedoch übersichtlich, wenn die Punkte in der Reihenfolge angegeben werden, die dem Verlauf der Hüllkurve im Uhrzeigersinn entsprechen.</P>

</BODY>
</HTML>