SCALEENTITY Cube..... rückwärts, auslesen?
Übersicht

TOONYBetreff: SCALEENTITY Cube..... rückwärts, auslesen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
mit SCALEENTITY Cube, 2,2,2 gebe ich dem cube eine größe. Läßt sich die größe auch abfragen? z.B.: x = entityscalex(cube) |
||
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
GetMatElement![]() |
||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alternativ hat die "Blitz3d+" DLL einige Funktionen, die dir den Status zurück geben
Darunter auch GetEntityScaleX#/Y#/Z# |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mr.Hyde hat Folgendes geschrieben: GetMatElement
![]() ich glaub das stimmt nicht ganz. sobald das object rotiert ist, enthalten die diagonalen nämlich nichtmehr nur den skalierungsfaktor, sondern in den werten ist auch die rotation mit reingewurschtelt. also ohne profunde kenntnisse über matrizen und winkelfunktionen lässt sich da recht wenig machen. ich würde einfach beim scalieren den wert iwo abspeichern, damit du das einfach in einer variable stehen hast. ist auch schneller, als ewig mit funktionen rumzutun. |
||
MFG Darren |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, so schwierig ist das auch wieder nicht. Die oberen drei Zeilen der Matrix stellen die Achsenvektoren des lokalen Koordinatensystems des Objekts dar - es reicht also, die Länge des Achsenvektors zu messen und man hat die Skalierung.
Der Code für die X - Achse sähe also so aus Code: [AUSKLAPPEN] Function EntityScaleX#( Entity )
VX# = GetMatElement( Entity, 0, 0 ) VY# = GetMatElement( Entity, 0, 1 ) VZ# = GetMatElement( Entity, 0, 2 ) Return Sqr( VX#*VX# + VY#*VY# + VZ#*VZ# ) End Function Die Funktionen für Y und Z sind analog - einfach beim zweiten Parameter von GetMatElement 1 bzw. 2 einsetzen. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
haste recht. hatte ich nicht bedacht, macht aber sinn =) wieder was gelernt. | ||
MFG Darren |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
MeshWidth![]() ![]() ![]() |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das funktioniert nur, wenn man ScaleMesh![]() ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alle Funktionen:
Code: [AUSKLAPPEN] Function EntityScaleX#(Entity) Vx# = GetMatElement(Entity, 0, 0) Vy# = GetMatElement(Entity, 0, 1) Vz# = GetMatElement(Entity, 0, 2) Scale# = Sqr(Vx#*Vx# + Vy#*Vy# + Vz#*Vz#) Return Scale# End Function Function EntityScaleY#(Entity) Vx# = GetMatElement(Entity, 1, 0) Vy# = GetMatElement(Entity, 1, 1) Vz# = GetMatElement(Entity, 1, 2) Scale# = Sqr(Vx#*Vx# + Vy#*Vy# + Vz#*Vz#) Return Scale# End Function Function EntityScaleZ#(Entity) Vx# = GetMatElement(Entity, 2, 0) Vy# = GetMatElement(Entity, 2, 1) Vz# = GetMatElement(Entity, 2, 2) Scale# = Sqr(Vx#*Vx# + Vy#*Vy# + Vz#*Vz#) Return Scale# End Function |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group