Punkte im 3D Raum ausblenden < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:07 Di 24.07.2007 | Autor: | Bodia |
"Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt."
Was ich bereits habe:
Ich stelle mit Hilfe von Mathematica einen Quader her, der aus 100x20x20 Punkten besteht. Dies erreiche ich, mit einem Mathematica Befehl nach folgendem Muster (Grundeinheit):
Show[Graphics3D[{PointSize[0.1], Point[{5, 5, 5}], ...und so weiter...}]]
Der Quader enthält also 40000 Punkte. Jeder Punkt hat eine andere Grösse.
Woher kommen die Daten: Die Daten habe ich aus einem anderen Programm exportiert und in Mathematica importiert.
Was ich wissen will:
Wo befinden sich die 4000 grössten Punkte?
Es ist natürlich schwierig, diese Punkte zu lokalisieren, weil ja die Punkte, die sich nicht am Rand des Quaders befinden durch die äusseren Punkte verdeckt werden.
Meine Idee: Wenn ich alle anderen 36000 Punkte die kleiner sind als die 4000 grössten Punkte ausblenden könnte, dann würde ich ihren Aufenthaltsort sehen.
Frage: Kann man das mit Mathematica umsetzen?
Ich stelle mir das etwa so vor: Nachdem die lange Kette mit obiger Grundeinheit (Show[Graphics3D[{PointSize[0.1], Point[{5, 5, 5}], ...und so weiter...}]]) vor mir liegt, möchte ich also irgendeinen Zusatz einfügen, der dafür sorgt, dass nur noch die 4000 grössten Punkte angezeigt werden.
Auf eine Antwort würde ich mich freuen. Im voraus besten Dank.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:44 Mi 25.07.2007 | Autor: | hEcToR |
Hallo Bodia,
also meiner Meinung nach kannste das über ne Umspeicherung der Liste machen.
Ich hoffe du hast für die 40000 Punkte schon eine Liste/Array angelegt.
Diese Liste kopiertst du als Liste der Größten Werte.
Nun sortierst du die Liste nach der Größe (Sort[]), und Löschst alle Zeilen größer als 4000 (Delete[]).
Fertig....
Kuck doch bitte mal in den Help-Browser unter manipulating Lists...
Grüße aus Dresden
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:47 Mi 01.08.2007 | Autor: | Bodia |
Vielen Dank für Deine Antwort.
Ich habe mit der Funktion Sort experimentiert.
Ich stellte fest, dass Punkte, welche die selbe Grösse haben, nach dem sortieren verloren gegangen sind.
Hier ein Beispiel:
Vor dem Sortieren habe ich 4 Punkte:
Show[Graphics3D[{PointSize[0.1], {Point[{0.6385747386371866, [mm] \
[/mm]
0.7228388067225733,
0.12454259281480237}]}, {PointSize[0.2],
Point[{0.32773589890540017, 0.06653027578977475, [mm] \
[/mm]
0.2623494974446329}]}, {PointSize[0.3],
Point[{0.7470277950036449, 0.512395561926733,
0.7652787670316805}]}, {PointSize[0.1], {
Point[{1.6385747386371866, 0.7228388067225733, [mm] \
[/mm]
0.12454259281480237}]}}}]]
Nach dem Sortieren habe ich nur noch 3 Punkte:
Show[Graphics3D[Sort[{PointSize[
0.1], {Point[{0.6385747386371866, 0.7228388067225733, [mm] \
[/mm]
0.12454259281480237}]}, {PointSize[0.2], Point[{0.32773589890540017, [mm] \
[/mm]
0.06653027578977475, 0.2623494974446329}]}, {PointSize[0.3], [mm] \
[/mm]
Point[{0.7470277950036449,
0.512395561926733, 0.7652787670316805}]}, {PointSize[0.1], [mm] \
[/mm]
{Point[{1.6385747386371866, 0.7228388067225733, 0.12454259281480237}]}}}]]]
Ich möchte allerdings nicht, dass bereits durch das Sortieren Punkte verlorengehen.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:41 So 05.08.2007 | Autor: | hEcToR |
Hallo Bodia,
bei mir zeigt er immernoch alle an...
Als kleinen Tipp kann ich dir aber ans Herz legen dir einen übersichtlicheren Systax anzugewöhnen. Du hast dich sozusagen verklammert.
Show[
Graphics3D[
Sort[
{
{PointSize[0.1],
Point[{0.6385747386371866, 0.7228388067225733,
0.12454259281480237}]},
{PointSize[0.2],
Point[{0.32773589890540017, 0.06653027578977475,
0.2623494974446329}]},
{PointSize[0.3],
Point[{0.7470277950036449, 0.512395561926733,
0.7652787670316805}]},
{PointSize[0.1],
Point[{1.6385747386371866, 0.7228388067225733,
0.12454259281480237}]}
}
]
]
]
Grüße aus Dresden
|
|
|
|