Änderungen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Zeile 144: Zeile 144:  
     <td>
 
     <td>
 
Konvertierung in Html, Verschiebung des Kapitel Planarität von Polygonen, Neues Kapitel CompositeSolid
 
Konvertierung in Html, Verschiebung des Kapitel Planarität von Polygonen, Neues Kapitel CompositeSolid
 +
    </td>
 +
  </tr>
 +
 +
<tr align="left" valign="top">
 +
    <td>
 +
0.7.1
 +
    </td>
 +
    <td width="220">
 +
20.01.2012
 +
    </td>
 +
    <td>
 +
Häfele
 +
    </td> 
 +
    <td>
 +
nicht öffentlich
 +
    </td> 
 +
    <td>
 +
Lizenzwechsel auf Creative Commons BY-NC-SA 4.0
 
     </td>  
 
     </td>  
 
   </tr>
 
   </tr>
    
   </table>
 
   </table>
 +
 +
{| width="100%" cellspacing="6" border="0"
 +
|- valign="top" align="left"
 +
| width="80%" | <div style="margin: 10px; border: 2px solid #dfdfdf; background-color:#f8f8ff;">{{Copyright-BY-NC-SA-4.0}}</div>
 +
|}
    
== Vorbemerkungen ==
 
== Vorbemerkungen ==
Zeile 379: Zeile 402:  
* Ein planarer linearer Ring <math>R_s</math> definiert den Rand eines Polygons <math>S</math> (äußerer Ring).
 
* Ein planarer linearer Ring <math>R_s</math> definiert den Rand eines Polygons <math>S</math> (äußerer Ring).
 
* Ein Polygon ist durch genau einen solchen äußeren Ring und <math>n\ge0</math> innere Ringe definiert. Jeder innere lineare Ring muss ebenfalls planar sein, und der äußere und alle inneren linearen Ringe müssen in derselben Ebene (im Rahmen einer gegebenen Toleranz) liegen.
 
* Ein Polygon ist durch genau einen solchen äußeren Ring und <math>n\ge0</math> innere Ringe definiert. Jeder innere lineare Ring muss ebenfalls planar sein, und der äußere und alle inneren linearen Ringe müssen in derselben Ebene (im Rahmen einer gegebenen Toleranz) liegen.
* Jeder innere lineare Ring muss innerhalb des Gebiets der Ebene liegen, das der äußere Ring begrenzt.
+
* Jeder '''innere''' lineare Ring '''muss innerhalb des Gebiets''' der Ebene liegen, das der '''äußere''' Ring begrenzt.
* Die inneren linearen Ringe dürfen nicht verschachtelt sein, d.h. kein innerer Ring liegt in dem Gebiet der Ebene, das ein anderer innerer Ring definiert.  
+
<table width="900px"  border="0" cellspacing="0">
* Die inneren Ringe und der äußere Ring dürfen sich paarweise in endlich vielen Punkten berühren. Dabei muss das Innere  des Polygons zusammenhängend sein.  
+
  <tr align="left" valign="top">
 +
<td width="100%">
 +
[[image:InnerLoops-02-2.png|500px]]
 +
</td>
 +
 
 +
  </tr>
 +
  <tr align="left" valign="top">
 +
    <td colspan="1">
 +
'''Abbildung 5:''' Polygon mit <span style="color:#008000">korrektem inneren Ring (links)</span> und <span style="color:#FF0000">nicht korrektem inneren Ring (rechts)</span> </td>
 +
  </tr>
 +
</table>
 +
* Die inneren linearen Ringe dürfen nicht verschachtelt sein, d.h. kein innerer Ring liegt in dem Gebiet der Ebene, das ein anderer innerer Ring definiert.
 +
<table width="900px"  border="0" cellspacing="0">
 +
  <tr align="left" valign="top">
 +
<td width="100%">
 +
[[image:InnerLoops-04-2.png|500px]]
 +
</td>
 +
 
 +
  </tr>
 +
  <tr align="left" valign="top">
 +
    <td colspan="1">
 +
'''Abbildung 5:''' Polygon mit <span style="color:#008000">zwei korrekten inneren Ringen (links)</span> und zwei verschachtelten, <span style="color:#FF0000">nicht korrekten inneren Ringen (rechts)</span> </td>
 +
  </tr>
 +
</table>
 +
* Die inneren Ringe und der äußere Ring dürfen sich paarweise in '''endlich !!!!! (evtl. nur einer)''' vielen Punkten berühren. Dabei muss das Innere  des Polygons zusammenhängend sein.
 +
<table width="900px"  border="0" cellspacing="0">
 +
  <tr align="left" valign="top">
 +
<td width="100%">
 +
[[image:InnerLoops-05-2.png|500px]]
 +
</td>
 +
 
 +
  </tr>
 +
  <tr align="left" valign="top">
 +
    <td colspan="1">
 +
'''Abbildung 5:''' Polygon mit <span style="color:#008000">korrektem, innerem Ring, der den außeren Ring an einem Punkt berührt (links)</span> und <span style="color:#FF0000">nicht korrektem innerem Ring, der den äußeren Ring an zwei Punkten berührt und damit dass Polygon spaltet (rechts)</span> </td>
 +
  </tr>
 +
</table>
 
* Die Reihenfolge der Punkte des äußeren Linear Rings definiert die '''Orientierung''' des Polygons. In  <math>R</math> existieren mindestens drei nicht ko-lineare Punkte  <math>P_i</math>, <math>P_j</math> und  <math>P_k</math>, die eine Ebene <math>E(P_i,P_j,P_k)</math> aufspannen. Der Vektor <math>\vec n</math> , der sich aus dem normalisieren Kreuzprodukt der beiden Vektoren <math>\vec{P_iP_j}</math>  und  <math>\vec{P_jP_k}</math>  ergibt, wird als Flächennormale des Polygons bezeichnet:  
 
* Die Reihenfolge der Punkte des äußeren Linear Rings definiert die '''Orientierung''' des Polygons. In  <math>R</math> existieren mindestens drei nicht ko-lineare Punkte  <math>P_i</math>, <math>P_j</math> und  <math>P_k</math>, die eine Ebene <math>E(P_i,P_j,P_k)</math> aufspannen. Der Vektor <math>\vec n</math> , der sich aus dem normalisieren Kreuzprodukt der beiden Vektoren <math>\vec{P_iP_j}</math>  und  <math>\vec{P_jP_k}</math>  ergibt, wird als Flächennormale des Polygons bezeichnet:  
   Zeile 437: Zeile 496:  
</table>
 
</table>
    +
== <span id="CompositeSurface"> [http://www.schemacentral.com/sc/niem21/e-gml32_CompositeSurface.html gml:CompositeSurface]</span>==
   −
==gml:CompositeSurface==
+
Eine CompositeSurface ist eine Menge <math>C=\lbrace S_1,S_2,...,S_n \rbrace</math> von Polygonen, für die
 +
folgendes gilt:
    +
# Die Schnittmenge zweier Polygone <math>S_k</math>  und <math>S_l</math>  aus <math>C</math>  ist entweder leer oder besteht nur aus Punkten und/oder Kanten, die auch in den beiden linearen Ringen vorkommen. Bezeichne <math>R_k=(P_0^k,P_1^k,...,P_n^k)</math>  den planaren linearen Ring, der das Polygon <math>S</math> definiert. Dann gilt:<br><math>S_i \cap S_k= \begin{cases}\emptyset\\ \lbrace Q_0,Q_1,...,Q_m\rbrace,Q_j=P_k^i\\ \lbrace e_0,e_1,...,e_m\rbrace,e_j=\overline{P_i^kP_{i+1}^k} \end{cases}</math>
 +
# Jede Kante <math>e_k=\overline{P_i^kP_{i+1}^k}</math> eines linearen Rings <math>R_k=(P_0^k,P_1^k,...,P_n^k)</math> , der ein Polygon <math>S_k \in C</math>  definiert, wird höchstens  einmal als Kante <math>e_l=\overline{P_j^lP_{j+1}^l}</math>  in einem linearen Ring <math>R_l=(P_0^l,P_1^l,...,P_m^l)</math>  genutzt, der ein anderes Polygon <math>S_l \in C</math>  definiert.<br>Es gilt <math>P_i^k=P_{j+1}^l</math>  und <math>P_{i+1}=P_j^l</math>.
 +
# Die Polygone aus <math>C</math> sind so orientiert, dass die Flächennormale benachbarte Polygone in dieselbe Richtung zeigen.
 +
# Die Vereinigung aller Polygone aus <math>C</math> ohne die Kanten oder Punkte, in denen sich die Polygone berühren, ist isomorph zu einem Polygon.
    +
Aus (1) und (2) ergibt sich, dass die Oberfläche, die durch  <math>C</math>  beschrieben wird, keine sich gegenseitig überlappenden oder durchdringenden Polygone enthalten darf (Polygone berühren sich höchstens in Punkten oder Kanten).
    
== <span id="Solid"> [http://www.schemacentral.com/sc/niem21/e-gml32_Solid.html gml:Solid]</span>==
 
== <span id="Solid"> [http://www.schemacentral.com/sc/niem21/e-gml32_Solid.html gml:Solid]</span>==
Zeile 450: Zeile 516:  
# Jede Kante <math>e_k=\overline{P_i^kP_{i+1}^k}</math> eines linearen Rings <math>R_k=(P_0^k,P_1^k,...,P_n^k)</math> , der ein Polygon <math>S_k \in C</math>  definiert, wird genau einmal als Kante <math>e_l=\overline{P_j^lP_{j+1}^l}</math>  in einem linearen Ring <math>R_l=(P_0^l,P_1^l,...,P_m^l)</math>  genutzt, der ein anderes Polygon <math>S_l \in C</math>  definiert.<br>Es gilt <math>P_i^k=P_{j+1}^l</math>  und <math>P_{i+1}=P_j^l</math>.
 
# Jede Kante <math>e_k=\overline{P_i^kP_{i+1}^k}</math> eines linearen Rings <math>R_k=(P_0^k,P_1^k,...,P_n^k)</math> , der ein Polygon <math>S_k \in C</math>  definiert, wird genau einmal als Kante <math>e_l=\overline{P_j^lP_{j+1}^l}</math>  in einem linearen Ring <math>R_l=(P_0^l,P_1^l,...,P_m^l)</math>  genutzt, der ein anderes Polygon <math>S_l \in C</math>  definiert.<br>Es gilt <math>P_i^k=P_{j+1}^l</math>  und <math>P_{i+1}=P_j^l</math>.
 
# Die Polygone aus <math>C</math>  sind so orientiert, dass die Flächennormalen nicht ins Innere des Festkörpers zeigen, sondern nach außen.
 
# Die Polygone aus <math>C</math>  sind so orientiert, dass die Flächennormalen nicht ins Innere des Festkörpers zeigen, sondern nach außen.
# Die Polygone aus <math>C</math>  sind zusammenhängend, d.h. in dem dualen Graphen von  <math>C</math> gibt es einen Weg, der alle Knoten umfasst. Der duale Graph G<sub>C</sub> =(V<sub>C</sub>, E<sub>C</sub>)</math> von <math>C</math>  besteht aus einer Menge V<sub>C</sub> von Knoten und einer Menge E<sub>C</sub> von Kanten. Jeder Knoten v aus V<sub>C</sub> repräsentiert genau ein Polygon aus <math>C</math> . Eine Kante zweier Polygone <math>S_k</math>  und <math>S_l</math>  aus <math>C</math>  wird in G<sub>C</sub> durch eine Kante <math>e=(v_{s_k},v_{s_l})</math> in E<sub>C</sub> dargestellt.
+
# Die Polygone aus <math>C</math>  sind zusammenhängend, d.h. in dem dualen Graphen von  <math>C</math> gibt es einen Weg, der alle Knoten umfasst. Der duale Graph G<sub>C</sub> =(V<sub>C</sub>, E<sub>C</sub>) von <math>C</math>  besteht aus einer Menge V<sub>C</sub> von Knoten und einer Menge E<sub>C</sub> von Kanten. Jeder Knoten v aus V<sub>C</sub> repräsentiert genau ein Polygon aus <math>C</math> . Eine Kante zweier Polygone <math>S_k</math>  und <math>S_l</math>  aus <math>C</math>  wird in G<sub>C</sub> durch eine Kante <math>e=(v_{s_k},v_{s_l})</math> in E<sub>C</sub> dargestellt.
 
# Für jeden Punkt <math>P</math>, der in einem linearen Ring eines Polygons aus <math>C </math> vorkommt, gilt: Der Graph <math>G_P =(V_P, E_P)</math>, der aus Polygonen und Kanten gebildet wird, die <math>P</math> berühren, ist zusammenhängend. Dabei repräsentiert jeder Knoten <math>v</math> aus <math>V_P</math> genau ein Polygon, dessen linearer Ring <math>P</math> enthält. Zwei Knoten sind genau dann mit einer Kante <math>e</math> aus <math>E_P</math> verbunden, wenn die Polygone, die durch die Knoten repräsentiert werden, eine gemeinsame Kante haben, die <math>P</math> berührt .
 
# Für jeden Punkt <math>P</math>, der in einem linearen Ring eines Polygons aus <math>C </math> vorkommt, gilt: Der Graph <math>G_P =(V_P, E_P)</math>, der aus Polygonen und Kanten gebildet wird, die <math>P</math> berühren, ist zusammenhängend. Dabei repräsentiert jeder Knoten <math>v</math> aus <math>V_P</math> genau ein Polygon, dessen linearer Ring <math>P</math> enthält. Zwei Knoten sind genau dann mit einer Kante <math>e</math> aus <math>E_P</math> verbunden, wenn die Polygone, die durch die Knoten repräsentiert werden, eine gemeinsame Kante haben, die <math>P</math> berührt .
   Zeile 533: Zeile 599:  
Ein CompositeSolid wird durch eine nichtleere Menge  <math>C = \{S_1,..., S_n\}</math> von '''[[#Solid|Solids]]''' (vgl. 12.) beschrieben, für die gilt:
 
Ein CompositeSolid wird durch eine nichtleere Menge  <math>C = \{S_1,..., S_n\}</math> von '''[[#Solid|Solids]]''' (vgl. 12.) beschrieben, für die gilt:
   −
# Der Schnitt der Inneren zweier Solids <math>S_i</math>, <math>S_j</math>, 1 ≤ i ≤ n, 1 ≤ j ≤ n, i ≠ j, ist leer, d.h. entweder sind beide Solids <math>S_i</math>, <math>S_j</math> disjunkt oder beide berühren sich nur in Flächen oder Punkten  
+
# Der Schnitt der Inneren zweier Solids <math>S_i</math>, <math>S_j</math>, 1 ≤ i ≤ n, 1 ≤ j ≤ n, i ≠ j, ist leer, d.h. entweder sind beide Solids <math>S_i</math>, <math>S_j</math> disjunkt oder beide berühren sich nur in Flächen, Linien oder Punkten  
 
   
# Sei <math>C'</math> die Vereinigung aller Solids aus <math>C</math>. Dann ist die Begrenzung von <math>C'</math> (die Oberfläche von <math>C'</math> ohne die Flächen oder Punkte, in denen sich die Solids berühren) die Begrenzung eines Solid.  
 
# Sei <math>C'</math> die Vereinigung aller Solids aus <math>C</math>. Dann ist die Begrenzung von <math>C'</math> (die Oberfläche von <math>C'</math> ohne die Flächen oder Punkte, in denen sich die Solids berühren) die Begrenzung eines Solid.  
   −
In CityGML werden bei CompositeSolids ebenso wie bei Solids innere Einschlüsse nicht betrachtet.  
+
In CityGML werden bei CompositeSolids ebenso wie bei Solids innere Einschlüsse (Hohlräume) nicht betrachtet.  
   −
  −
  Sollen innenliegende Löcher oder Hohlräume erlaubt sein?
      
'''Beispiele:'''
 
'''Beispiele:'''
Zeile 676: Zeile 739:  
# Es gibt mindestens drei Kontrollpunkte.
 
# Es gibt mindestens drei Kontrollpunkte.
 
# Die Oberfläche, die durch das TIN repräsentiert ist, hängt nicht von der Reihenfolge der Kontrollpunkte ab. Anwendungsschemata können Angaben zur Reihenfolge der Kontrollpunkte beinhalten, um die Rekonstruktion des TIN aus den Kontrollpunkten zu beschleunigen.
 
# Die Oberfläche, die durch das TIN repräsentiert ist, hängt nicht von der Reihenfolge der Kontrollpunkte ab. Anwendungsschemata können Angaben zur Reihenfolge der Kontrollpunkte beinhalten, um die Rekonstruktion des TIN aus den Kontrollpunkten zu beschleunigen.
 +
 +
{| width="100%" cellspacing="6" border="0"
 +
|- valign="top" align="left"
 +
| width="80%" | <div style="margin: 10px; border: 2px solid #dfdfdf; background-color:#f8f8ff;">{{Copyright-BY-NC-SA-4.0}}</div>
 +
|}
419

Bearbeitungen

Navigationsmenü