PickedVertex

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

The_Nici

Betreff: PickedVertex

BeitragSo, Mai 18, 2008 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe von www.blitzbasic.com folgende Funktion:
Code: [AUSKLAPPEN]

Function PickedVertex()

   mesh = PickedEntity()
   surf = PickedSurface()
   tri = PickedTriangle()

   px# = PickedX()
   py# = PickedY()
   pz# = PickedZ()
   
   v0 = TriangleVertex(surf,tri,0)
   v1 = TriangleVertex(surf,tri,1)
   v2 = TriangleVertex(surf,tri,2)
   
   TFormPoint VertexX(surf,v0),VertexY(surf,v0),VertexZ(surf,v0),mesh,0
   dx# = TFormedX - px
   dy# = TFormedY - py
   dz# = TFormedZ - pz
   v0d# = dx*dx + dy*dy + dz*dz

   TFormPoint VertexX(surf,v1),VertexY(surf,v1),VertexZ(surf,v1),mesh,0
   dx# = TFormedX - px
   dy# = TFormedY - py
   dz# = TFormedZ - pz
   v1d# = dx*dx + dy*dy + dz*dz

   TFormPoint VertexX(surf,v2),VertexY(surf,v2),VertexZ(surf,v2),mesh,0
   dx# = TFormedX - px
   dy# = TFormedY - py
   dz# = TFormedZ - pz
   v2d# = dx*dx + dy*dy + dz*dz
   
   If (v0d < v1d) And (v0d < v2d) Then Return v0
   If (v1d < v0d) And (v1d < v2d) Then Return v1

   Return v2

End Function


Nun, da ich sie brauche habe ich sie bei mir eingebaut. Jedoch gibts ein MAV weil mesh und surf 0 sind. Das Mesh hat Entitypickmode 2 und camerapick wurde vorher ausgeführt. Warum funktionierts nicht, wenn ich auf das Mesh klicke?

skey-z

BeitragSo, Mai 18, 2008 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
so grob würde ich mal vermuten, dass "mesh" und "surf" nicht global sind, den du übergibst diese auch nicht an die Funktion, deshalb sind sie in der Funktion nicht verfügbar
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

The_Nici

BeitragSo, Mai 18, 2008 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum sollten sie auch Global sein? Sie werden ja in der Funktion festgelegt.

Noobody

BeitragSo, Mai 18, 2008 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
The_Nici hat Folgendes geschrieben:
Warum funktionierts nicht, wenn ich auf das Mesh klicke?

The_Nici hat Folgendes geschrieben:
...weil mesh und surf 0 sind.


Nun müsstest du dich fragen, warum das so ist.
Lass dir einfach mal Debugweise PickedEntity() ausgeben (ohne PickedVertex auszuführen) und prüfe, ob irgendwas mit deiner Pickroutine falsch ist, denn mit diesem Code können wir nun nicht viel anfangen (da er ja aus einem Codearchiv übernommen ist und funktionieren muss).
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

The_Nici

BeitragSo, Mai 18, 2008 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich hab mal Camerapick global gemacht und am ende noch Text 0,0,pick eingefügt, jetzt funktionierts irgendwie. Oo

Nächstes problem: ich platziere zum gepickten Vertex einen Cube, mit VertexX(), jedoch kommt da was völlig falsches raus. Warum? Beim Verschieben gehts dann wieder richtig.

Eingeproggt

BeitragSo, Mai 18, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
VertexX ist relativ zu den MeshKoordinaten von dem Mesh, dessen Surface der Vertex angehört, oder?

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Xaymar

ehemals "Cgamer"

BeitragSo, Mai 18, 2008 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Die Funktion VertexX liefert die X-Koordinate eines Vertexpunktes zurück. Diese Koordinate beschreibt die Position des Vertexpunktes von Objektmitte


Jop

Lösung:
VertexX(...)+EntityX(...)
VertexY(...)+EntityY(...)
VertexZ(...)+EntityZ(...)
Warbseite

The_Nici

BeitragSo, Mai 18, 2008 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Erfolgslos.
Cubes sind immernoch gleich verschoben.

Silver_Knee

BeitragSo, Mai 18, 2008 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nutze
TFormPoint VertexX(surf,v2),VertexY(surf,v2),VertexZ(surf,v2),mesh,0
Aus deinem Code.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group