| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Linie innerhalb Dreieck (1274 mal gelesen)
|
jobau Mitglied Bauingenieur
 
 Beiträge: 209 Registriert: 21.01.2003
|
erstellt am: 23. Feb. 2006 08:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forum, ich komme bei einem Problem nicht weiter und würde mich über Hilfe oder einen Lösungsansatz sehr freuen. Hierum gehts: Ich habe ein Dreieck mit 3 Punkten. In das Dreieck will ich interpolierte Höhenlinien einzeichen (das ganze soll mal ein schlichtes DGM werden). Ich berechne die Schnittpunkte der Höhenlinie mit den Seiten des Dreiecks und lasse 3 Geraden zeichnen (zwischen 1 und 2, 1 und 3 + 2 und 3), wobei die Schnittpunkte dann auch ausserhalb des Dreiecks liegen können (siehe auch angehängtes Bild). Wie schaffes ich es, dass nur die Höhenlinie gezeichnet wird, die innerhalb des Dreiecks liegt? Oder gibt es eine Möglichkeit mit "stutzen"? Danke für jede Hilfe Jörg ------------------ AutoCAD 2006 DEU Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schrema Mitglied Umweltingenieur

 Beiträge: 12 Registriert: 21.02.2006
|
erstellt am: 23. Feb. 2006 13:40 <-- editieren / zitieren --> Unities abgeben:          Nur für jobau
2. Versuch ich gehe davon aus, dass Du die Schnittpunkte 1 bis 3 jeweils einer Seite zuordnen kannst. Oder liege ich da falsch. Wenn nicht, müsstest Du doch nur den Z-Bereich einer Dreiecksseite mit dem Z-Wert des zugehörigen Schnittpunktes vergleichen. Die Punkte, welche die interessierende Gerade ergeben, müssen im Z-Bereich ihrer zugehörigen Dreiecksseite liegen. In Deinem Beispiel dürfte deshalb der Punkt 3 dieses Kriterium nicht erfüllen. MfG Macro Schreiter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 23. Feb. 2006 23:34 <-- editieren / zitieren --> Unities abgeben:          Nur für jobau
Hallo Jörg, verstehe nicht wie du an die zwei Linien kommst. Die Stützpunkte kannst du doch pro Linien in einer For ..Next Schleife ermitteln.
Code:
Typ Punkt_3D Y as double x as double h as double end typ sub sort_Punkte(P1 as Punkt3D,P1 as Punkt3D) dim tmpPunkt as Punkt_3D if p1.h > p2.h then tmpPunkt=p1 p1=p2 p2=tmpPunkt end if end sub.. ' Min Höhe der 3 Punkte ermitteln ' Max Höhe ermitteln ' Anzahl der Höhenstufen ermitteln ' Feld dimensionieren Redim Stützpunkte (0 to Anzahl*2 -1) ' Für jede Kante ' Punkte sortieren (kleinste Höhe als ersten Punkt) Sort_Punkte P1,P2 ' erste kante mit runden Höhen for i= int(p1.h)+1 to int(p2.h) y= p1.y + ((p2.y - p1.y)/(p2.h - p1.h) * (i - p1.h)) x= .... h= i Stützpunkte(AktPkt).y=y Stützpunkte(AktPkt).x=x Stützpunkte(AktPkt).h=h AktPkt=AktPkt+1 next i ' die nächsten zwei Kanten ..... ' Linien zeichnen ' Punkte mit gleicher höhe werden verbunden ...
Stelli
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jobau Mitglied Bauingenieur
 
 Beiträge: 209 Registriert: 21.01.2003
|
erstellt am: 24. Feb. 2006 07:48 <-- editieren / zitieren --> Unities abgeben:         
Dank an euch für die Lösungsansätze, ich werde mal sehen, ob ich damit klar komme und ob mich das weiter bringt. Aber ich habe jetzt einen Ansatz gefunden, der mein Problem ganz gut trifft. Gruß Jörg ------------------ AutoCAD 2006 DEU Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
 
 Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 24. Feb. 2006 19:24 <-- editieren / zitieren --> Unities abgeben:          Nur für jobau
Hi Jörg. 1. Dreieck mit LINE's oder als POLYLINE zeichnen 2. Die Höhenlinie mit XLINE zeichnen 3. mit der Methode 'InterectWith' Schnittpunkte zwischen Dreieckslinien und XLINE berechnen lassen (Schnittpunkte liegen nur auf den GEZEICHNETEN Linien) 4. Linie zwischen den Schnittpunkten einzeichnen 5. XLINE wieder löschen Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |