Mittelpunktbestimmung und Durchsichtigkeit
Übersicht

NewSamuraiBetreff: Mittelpunktbestimmung und Durchsichtigkeit |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich mach es kurz:
1. Gibt es in BB3D ne Funktion mit der man den Mittelpunkt eines Objektes herausb bekommt? 2. Kann man einzeln, gezeichnete Polys nachträglich durchsichtig machen? NewSamurai |
||
![]() |
eizdealerBetreff: Re: Mittelpunktbestimmung und Durchsichtigkeit |
![]() Antworten mit Zitat ![]() |
---|---|---|
NewSamurai hat Folgendes geschrieben: Ich mach es kurz:
1. Gibt es in BB3D ne Funktion mit der man den Mittelpunkt eines Objektes herausb bekommt? 2. Kann man einzeln, gezeichnete Polys nachträglich durchsichtig machen? NewSamurai 1. EntityX/Y/Z ? Oder du rechnest die X/Y/Z Werte aller Vertices zusammen und teilst sie durch die Anzahl. 2. Nachdem sie gerendert wurden? Nein. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mittelpunkt: Die lokalen koordinaten aller vertices addieren, durch die anzahl vertices dividieren und dann zu den globalen koordinaten des objektes hinzuzählen | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder MinMax der Vertices ermitteln und davon die Mitte nehmen,
ist evtl. besser weil man so keinen Überlauf bekommt . Wenn du in einem Objekt Editor das Mesh zentriest wäre der Mittelpunkt 0,0,0 Bei EntityXYZ gibt es noch dem Parameter Global . Gibt noch Vertex Alpha , aber da mußte noch den EntityFx zu einschalten . Oder du löscht einfach das Triangle vom Mesh . Denke aber eher du möchtest die Outline vom Polygon sehen , oder ? Code: [AUSKLAPPEN] Function CenterMesh(Entity,cx,cy,cz) ;MR 08.01.2003 ;Center a Mesh ; on X If cx=True ; on Y If cy=True ; on Z If cz=True If Entity=0 Then Return 0 ;----------------------------------- Find Mesh Min Max XYZ Local mx1#= 3.4*10^38,my1#= 3.4*10^38,mz1#= 3.4*10^38 Local mx2#=-3.4*10^38,my2#=-3.4*10^38,mz2#=-3.4*10^38 Local i,vi,s Local check=False If CountSurfaces(Entity)>0 Then For i=1 To CountSurfaces(Entity) s=GetSurface(Entity,i) If CountVertices(s)=>1 Then For vi = 0 To CountVertices(s)-1 If VertexX(s,vi)<mx1 Then mx1=VertexX(s,vi) If VertexY(s,vi)<my1 Then my1=VertexY(s,vi) If VertexZ(s,vi)<mz1 Then mz1=VertexZ(s,vi) If VertexX(s,vi)>mx2 Then mx2=VertexX(s,vi) If VertexY(s,vi)>my2 Then my2=VertexY(s,vi) If VertexZ(s,vi)>mz2 Then mz2=VertexZ(s,vi) check=True Next EndIf ;Count Vert Next EndIf ;Count Surf If check=False Then Return 0 ;----------------------------------- Local mw#,mh#,md#,xp#,yp#,zp# mw# = Abs(mx2-mx1) mh# = Abs(my2-my1) md# = Abs(mz2-mz1) If CountSurfaces(Entity)>0 Then For i=1 To CountSurfaces(Entity) s=GetSurface(Entity,i) If CountVertices(s)=>1 Then For vi = 0 To CountVertices(s)-1 xp#=VertexX(s,vi) yp#=VertexY(s,vi) zp#=VertexZ(s,vi) If cx<>0 Then xp#=xp#-mx1-mw#/2 If cy<>0 Then yp#=yp#-my1-mh#/2 If cz<>0 Then zp#=zp#-mz1-md#/2 VertexCoords s,vi,xp#,yp#,zp# Next EndIf ;Count Vert Next EndIf ;Count Surf Return True End Function |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. möp, tut es MeshWidth, Height, Depth / 2 + EntityX, Y, Z nicht auch?
2. Wenn Du einzelne Polys durchscichtig machen willst, müssen sie als einzelnes Surface vorliegen. Dieses kannst du mit einem entsprechend transparenten Brush belegen. mfg olli |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. OK präzisieren wir: "massemittelpunkt" oder volumenmittelpunkt?
für volumen reichen die width etc für masse musste aufsummieren und teilen. und nen überlauf bringste da kaum hin sonst müsste das model übergrösse haben oder mehr vertices als ein einzelnes model überhaupt haben sollte |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Vertex
1. nicht immer ... @Dreamora Nur in der Theorie , wenn alle Punkte z.B. links von der Objekt Achse sind bekommste einen falschen Wert zurück weil BB von der Objekt Achse aus rechnet und dann stimmt MeshWidth eben nicht mehr , irgendwie war das so ... Gibt ja auch Objekte an/um die 1 MB und da kann das schon passieren, wollte es ja auch nur erwähnt haben ... |
||
NewSamurai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
THX für die schnellen und guten Antworten
NewSamurai |
||
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group