Abnahmefaktor berechnen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

toni123

Betreff: Abnahmefaktor berechnen

BeitragFr, Nov 05, 2010 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute,

ich versuche gerade ein Objekt zu Skalieren, bei dem der Wert bei jedem Schleifendurchlauf um 1/x2 abnehmen soll. x stellt in dem Fall die Entfernung zu einem anderen Objekt dar.
Beim Erstellen Skaliere ich mit ScaleMesh, wobei ich mir auch nicht sicher bin, ob es besser ist ScaleMesh oder Scale Entity zu nutzen
Code: [AUSKLAPPEN]


ScaleMesh a\entity,  1.3, 1.3, 1.3



In der Funktion:
Code: [AUSKLAPPEN]

Local s# = 1 Mod (EntityDistance(a\entity, test2)^2)
Local w# = 1.3 - s

Anschliessend:

ScaleMesh a\entity, w, w, w



Weiß jemand ob ich bei der Berechnung einen fehler gemacht habe, oder ob ScaleMesh mit den Werten nicht klarkommt?

Grüße

Toni

Silver_Knee

BeitragFr, Nov 05, 2010 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ScaleMesh mesh,0.5,0.5,0.5

würde bei jedem Schleifendurchlauf das Mesh um die Hälfte in jede Richtung verkleinern.


ScaleEntity mesh,0.5,0.5,0.5

skaliert bei jedem Schleifendurchlauf das Mesh neu auf die Hälfte der Originalgröße in jeder Richtung.

und wenn x bei dir die Entfernung ist mach doch:

d#=EntityDistance(...,...)
w#=1/(d*d)

ToeB

BeitragFr, Nov 05, 2010 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Also.

ScaleMesh scalliert die Vertex-Punkte im Mesh, heißt, wenn du zweimal ScaleMesh mit z.B 0.5 anwedest ist das Object nur noch 0.25 mal so groß wie vorher.

ScaleEntity hingegen verändert nur die Mal-Größe, also den Faktor mit dem die Vertexpunkte zur mitte hin stehen.

Für dein vorhaben musst du also ScaleEntity nehmen, da dort nur der Faktor gesetz wird und nicht die grund daten verändert.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

toni123

BeitragFr, Nov 05, 2010 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, ich vernwende ScaleEntity.
Allerdings zeigt er mir die Objekte jetzt gar nicht mehr an.
Natürlich nehm ich ja jetzt statt

Code: [AUSKLAPPEN]
Local w# = 1.3 - s

Code: [AUSKLAPPEN]
Local w# = 1 - s


aber er die Objekte sind schlicht und einfach nicht da. das Programm läuft zwar wie gewohnt weiter, aber keine Objekte mehr zu sehen.


EDIT: er zeigt die Objekte an, allerdings von Anfang an sehr klein und sie werden nicht skaliert

Eingeproggt

BeitragFr, Nov 05, 2010 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Local s# = 1 Mod (EntityDistance(a\entity, test2)^2)


Ich schätze mal, da kommt immer 1 raus oder? Also außer für sehr kleine Distanzen - wobei ich gar ned weiß, wie sich Modulo verhält, wenn der Modul eine Zahl zwischen 0 und 1 ist Shocked
Na jedenfalls gehts dir darum, den wert auf 0 bis 1 zu begrenzen, richtig? Dann mach folgendes:
Code: [AUSKLAPPEN]
Local s# = EntityDistance(a\entity, test2)^2
s#=s#-Floor(s#)


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

toni123

BeitragSa, Nov 06, 2010 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, denn der Faktor ist ja 1/x^2
anschliessend ziehe ich das ja von 1 ab. Das heißt letztendlich kommt der wert 1 nur dann raus, wenn ich eine Entfernung von 0.5 hab. Aber auch mit Floor sind die Teile von anfang an total klein und bleiben auch klein.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group