|
|
Interpolation konkaver Flächenbereiche |
|
Student_MB |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 31.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2010, 11:03
Titel: Interpolation konkaver Flächenbereiche
|
 |
|
 |
|
Hallo,
ich habe zu folgender Problemstellung zwei Fragen (ich hoffe, ich stelle meine Frage an der richtigen Stelle im Forum). Ich importiere aus einem FEM-Programm x- und y Koordinaten und eine dazugehörige Spannung. Bei der Kontur handelt es sich um einen Zahn einer Evolventenverzahnung, mit einem Konturübergang von konvex in konkav im Zahnfußbereich. Diese Daten werden als Vektoren in Matlab eingelesen und verwendet. Unter anderem nutze ich die Daten um daraus wieder eine farbige Fläche zu plotten, jedoch will ich zuvor die Werte zwischen den Knoten interpolieren um die Auflösung des Farbverlaufs zu erhöhen. Dies funktioniert auch mit griddata oder triscatteredinterp ganz gut. Jedoch wird im konkaven Bereich der Kontur auch außerhalb der Kontur interpoliert und die Fläche eingefärbt, sodass ein großes Trapez entsteht, das die Zahnkontur enthält. Für die Darstellung soll aber der Zahn erhalten bleiben.
Somit meine Frage:
Gibt es eine Möglichkeit auch konkave Flächenbereiche richtig zu interpolieren oder kann ich nach der Interpolation diese Bereiche wieder entfernen?
Des Weiteren möchte ich die interpolierten Werte, die ich aus griddata erhalte mit einem Grenzwert vergleichen, sodass alle Werte die unter dieser Grenze liegen in einer Farbe (zB.: schwarz) und alle Werte die über der Grenze liegen in einer anderen Farbe (zB.: weiß) geplottet werden. Jedoch habe ich es bis jetzt nicht herausgefunden wie ich die Matrix, die aus griddata entsteht, weiter bearbeiten kann, sodass ich nur noch einen schwarz/weiß-Plot erhalte.
Würde mich sehr freuen, wenn jemand zu meinen beiden Fragen eine Lösung hätte.
Vielen Dank im Voraus!!!
_________________
Gruß, Student_MB
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 31.07.2010, 11:40
Titel:
|
 |
Hallo,
zur ersten Frage: setze die nicht gewünschten Werte auf NaN, dann werden sie nicht geplottet.
zur zweiten Frage: die Farbgebung wird über den Befehl colormap gesteuert. Natürlich muß man evtl. die Hintergrundfarbe anpassen - weiß auf weiß sieht man schlecht.
Grüße,
Harald
|
|
|
Student_MB |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 31.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.07.2010, 12:08
Titel:
|
 |
|
 |
|
Hallo Harald,
danke für deine schnelle Antwort. Leider bin ich noch ein Matlab-Anfänger, sodass mein Matlab-Wissen sehr beschränkt ist.
Somit habe ich keine Vorstellung wie ich aus der Matrix, die mit "griddata" entsteht, Werte die ich nicht haben möchte auf NaN setzen kann. Vielmehr fehlt mir ein Vergleichskriterium anhand dessen ich die Werte außerhalb zu null setzen kann. Was ich habe, sind die Koordinaten der Knoten als Vektoren und die Koordinaten der linken und rechten Konturseite des Zahnes, sprich, es gibt einen Vektor (x_) und (y_) der die Koordianten der Ränder enthält. jedoch mit weniger Punkten, da die Vektoren vor der Interpolation entstanden sind.
"colormap" ist mir ein Begriff, und ich habe auch versucht colormap anzuwenden. jedoch habe ich nicht herausgefunden, wie ich innerhalb colormap nur zwei farben definieren kann und zudem noch einen Grenzwert festlegen kann an dem die Farbe wechseln soll.
Danke für weitere Hilfen!!!
_________________
Gruß, Student_MB
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 31.07.2010, 12:51
Titel:
|
 |
Hallo,
Zitat: |
Vielmehr fehlt mir ein Vergleichskriterium anhand dessen ich die Werte außerhalb zu null setzen kann. |
Das ist für mich auch schwer zu beantworten, vor allem da ich mir die Anwendung nicht wirklich vorstellen kann. Aber vielleicht hilft convhull, um die konvexe Hülle erstmal zu bestimmen?
z.B. so:
Verschieben des Schwellwerts durch Wiederholen einer Farbe.
Evtl hilft auch
Grüße,
Harald
|
|
|
Ivo_Tu-Berlin |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.09.2010, 11:58
Titel: Probleme beim Interpolieren auf konkaven Flächen
|
 |
Hallo,
ich habe ein ähnliches Problem.
Matlap macht Probleme beim interpolieren auf gekrümmten Flächen.
Weder griddata noch DelaunayTri (freeBoundary,InOut) helfen weiter.
Die Werte einfach mit NaN zu belegen ist in anbetracht der Geometrie und Datenmenge nicht möglich und eher unelegant.
Eventuell kann euch die anhängende Grafik eine Vorstellung davon geben.
Hoffe Ihr könnt mir weiterhelfen.
Vielen Dank
Beschreibung: |
Aktuatorschnitt. Es soll nur auf der Fläche interpoliert werden um einen Konturplot zu erstellen. |
|
 Download |
Dateiname: |
Aktuator.png |
Dateigröße: |
17.84 KB |
Heruntergeladen: |
866 mal |
|
|
|
Klaus_MS |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2010, 10:41
Titel: Boundary
|
 |
Habe genau das gleiche Problem, ein irreguläres FEM grid, für das ich gerne eine Interpolation auf ein reguläres grid hätte. Die Grenze bestimmen bekomme ich mittlerweile aber hin (Convex hull bringt da nichts, da es den äußersten Rand der Datenpunkte erfasst, nicht aber die "Struktur"). Lösung: Man berechnet den Radius der Kreise, in die jedes Dreieck eingeschrieben werden kann (hab ich im Exchange gefunden). Dann eine Schwelle setzen und die großen Kreise rauswerfen. Zum Plotten klappt das, zum Interpolieren weiß ich noch nicht, wie man die entsprechenden Dreiecke löscht. Hier ein Beispielcode:
Wenn mir jemand sagen könnte, wie ich die großen Triangles aus dem dt gelöscht bekomme, wäre das super. Dann könnte ich danach mit dt in TriScatteredInterp gehen und wäre fertig.
Danke schon mal!
Klaus
|
|
|
Klaus_MS |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2010, 12:23
Titel: "Lösung"
|
 |
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|