WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schnittfläche von 2 Funktionen mit Farbe füllen

 

Borg303
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 14:16     Titel: Schnittfläche von 2 Funktionen mit Farbe füllen
  Antworten mit Zitat      
Hallo Leute,
Ich habe ein kleines Problem (so hoffe ich).
Ich habe 2 Funktionen, einmal eine unregelmäßige Kontur und einen Kreis.
Beide Funktionen schneiden sich, wie in Bild1 zu sehen.
Ich möchte mit dem Befehl "fill" die Schnittfläche blau füllen.

Code:

h1=fill([x1 x2], [y1 y2],'b','Edgecolor', 'none');
 

x1, y1 sind die Werte von Funktion 1 und x2, y2 die Werte des Kreises.
In Bild2 ist zu sehen, dass genau die Flächen, die ich garnicht angezeigt haben möchte, blau gefüllt sind. Ich möchte aber genau die in Bild2 zu sehende weiße Schnittfläche, und nur die, blau gefärbt sehen.

Kann mir jemand helfen?
Beste Grüße
Mario

Bild2.png
 Beschreibung:

Download
 Dateiname:  Bild2.png
 Dateigröße:  10.56 KB
 Heruntergeladen:  762 mal
Bild1.png
 Beschreibung:

Download
 Dateiname:  Bild1.png
 Dateigröße:  10.79 KB
 Heruntergeladen:  767 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.07.2012, 16:21     Titel: Re: Schnittfläche von 2 Funktionen mit Farbe füllen
  Antworten mit Zitat      
Hallo Borg303,

Zitat:
Ich möchte mit dem Befehl "fill" die Schnittfläche blau füllen.

Der FILL-Befehl macht offensichtlich etwas anderes, als Du möchtest. Lies Dir bitte nochmal die entsprechende Dokumentation durch.

Wenn also FILL nicht das machst, was Du möchtest, wie lautet Deine Frage dann?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Borg303
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2012, 20:50     Titel:
  Antworten mit Zitat      
Es muss natürlich nicht unbedingt der Befehl "fill" sein. Ziel ist einfach, dass die Schnittfläche der beiden Kurven mit einer Farbe gefüllt werden soll. Ich möchte später diese Fläche in einen anderen Plot reinplotten.
Ich hab im Anhang mal ein Video gemacht. Ich verteile in einem unregelmäßig geformten Körper Kugeln und mache dann schnitte durch den Körper. Die Einzelbilder des Videos hab ich mit contourf gemacht und dann nach hold on die Kreisschnittfläche mit rein geplottet. Ich möchte, dass wenn die Kugeln am Rand des Körpers liegen, dass sie nicht wie am Ende des Videos zu sehen aus dem Körper herausschauen. Dazu muss ich halt wissen, wie ich die Schnittfläche der beiden Kurven, die mir bekannt sind plotten kann.

Ich hoffe so ist es klarer...
Grüße
Mario

Beispiel.wmv
 Beschreibung:

Download
 Dateiname:  Beispiel.wmv
 Dateigröße:  1.95 MB
 Heruntergeladen:  515 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.07.2012, 01:00     Titel:
  Antworten mit Zitat      
Hallo Borg303,

Du suchst also eigentlich eine Methode, um die Schnittmenge zweier Polygone zu bestimmen - richtig? Erst im nächsten Schritt kann FILL dann das erhaltene Schnittmengen-Polygon zeichnen.

Ein konkretes Beispiel ist im Forum immer hilfreich um ein Problem zu erklären und den Antwortenden das Erstellen eines passenden Programms zu vereinfachen.

Funktionen zur Bestimmung von Polygon-Überschneidungen findest Du z.B. im FileExchange. Siehe z.B. unter http://www.mathworks.com/matlabcent.....eexchange/?term=intersect.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Borg303
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 13:30     Titel:
  Antworten mit Zitat      
Hallo,
Mit den Funktionen zur Polygonüberschneidung bin ich nicht weiter gekommen.

Um es nochmal ganz einfach zu sagen, was ich möchte.

Ich habe z.B. 2 Kreise, erschaffen wie folgt:

Code:

function [] = test()

[x1,y1,z1] = cylinder(3500,100);
[x2,y2,z2] = cylinder(3500,100);
x2=x2+2000;
y2=y2+2000;


figure(1)
plot(x1(1,:),y1(1,:),'b')
hold on
plot(x2(1,:),y2(1,:),'r')

figure(2)
fill([x1(1,:) x2(1,:)],[y1(1,:) y2(1,:)],'k')

end
 


Das führt ja zu dem Bild 1.png.
Mit dem fill-Befehl kommt Bild 2 dabei raus.
Es wird genau die Fläche schwarz gefüllt, die sich nicht überschneiden.
Ich möchte aber, dass genau die Schnittfläche gefüllt werden soll, welche in Bild 2 ja jetzt gut in weiß zu sehen ist, weil gerade alles andere schwarz ist. Das ist mit den Kreisen jetzt nur ein Beispiel, ich habe nachher wie oben zu sehen irgend welche x und y Vektoren, die eine Kontor ergeben.

Es würde mich extrem viel helfen, einfach diese Schnittfläche dieser beiden Kreise zu füllen.

Vielleicht bin ich auch ein bisschen zu doof gerade und es ist ganz einfach...

Vielleicht hat ja noch jemand eine Idee??

Danke schon mal

Beste Grüße
Mario

2.png
 Beschreibung:

Download
 Dateiname:  2.png
 Dateigröße:  4.83 KB
 Heruntergeladen:  798 mal
1.png
 Beschreibung:

Download
 Dateiname:  1.png
 Dateigröße:  5.02 KB
 Heruntergeladen:  750 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.