Ho un grande modello FEM da dove posso ottenere la "superficie" del modello, dire gli elementi ei vertici che definiscono la superficie di quel modello FEM. Per scopi di trama (le belle trame sono sempre una vittoria!) Voglio tracciarlo bene. Il mio approccio è solo quello di utilizzareMatlab che calcola le normali di superficie errate?
lungs.Vertex=vtx;
lungs.Faces=fcs;
patch(lungs,'facecolor','r','edgecolor','none')
NOTA: ho bisogno edgecolor nessuno, come si tratta di dati 4D e diverso FEM hanno triangolazione diverso, se i bordi sono tracciate utente sarà vertigini.
Tuttavia questo tutto uscita volontà in un colore davvero pianura rosso, che non è bello (in quanto non può mostrare la complessità della figura, che sono i polmoni, per l'attento ai dettagli).
quindi ho deciso di utilizzare ligthing:
camlight; camlight(-80,-10); lighting phong;
Ma ancora una volta, questo non è del tutto corretto. In realtà sembra che i patch nromals non vengano calcolati correttamente da Matlab.
La mia supposizione è che forse le patch non sono sempre definiti in senso antiorario e quindi alcune normali andare nella direzione sbagliata. Comunque è qualcosa che non è semplice da controllare.
Chiunque ha un problema simile, o ahint di come dovrei aproach questo problema in modo da avere una superficie bella ploted qui?
EDIT
Solo per la scossa di complotto, ecco il risultato ottenuto con risposta @magnetometer:
Sicuramente non ho le normali, questo è il problema. Se tutte le normali fossero "orientate verso l'esterno" o "orientate verso l'interno", allora non ci saranno problemi neanche, basta orientarli e basta. Ma sembra (dalla foto) che alcuni vadano all'interno e altri all'esterno, rendendo l'idea sbagliata. –
Funzioni davvero molto interessanti. Tuttavia sto ancora avendo problemi. Ho "faccia le normali" ma sembra che MATLAB desideri "vertex normal" per impostare ligthing. Come suggerisci di avvicinarmi a questo? Vertexnormals = media (facenormals_with_that_vertex)? –
L'ho fatto così e ho ottenuto risultati sorprendenti. Grazie mille, questa è una risposta molto bella. –