2017-05-19 2 views
0

Ich habe einen Würfel, den ich in Kreisform bewege (mit horizontaler Tasteneingabe) ist unter Code vorgeschlagen.Formel zum Umwandeln der Positionsachse in Zeit

public class Oscillator : MonoBehaviour { 
    float timeCounter = 0; 

    float speed,width, height; 

    public float yPosition = 30; 
    // Use this for initialization 
    void Start() { 
     speed = 2; width = 10; height = 10; 
    } 

    // Update is called once per frame 
    void Update() { 

     timeCounter += Time.deltaTime * speed * Input.GetAxis("Horizontal"); 
     float x = Mathf.Sin (timeCounter)* height; 
     float y = yPosition; 
     float z = Mathf.Cos (timeCounter) * width; 
     transform.position = new Vector3 (x, y, z); 

    } 
} 

Jetzt bewegt sich mein Objekt in Kreisform, was in Ordnung ist. Jetzt möchte ich meine Objektbewegung in die Zeit übersetzen. Lassen annehmen

wenn mein Objekt x Position 1 ist, dann sollte es mir Zeit 1,0

geben, wenn es 1,5 dann ist, sollte es mir 1.5 geben

es nach x Postion meines Objekt vergrößern oder verkleinern (oder möglicherweise durch z).

Ich habe die x-Position meines Objekts protokolliert, die von 0 bis 9.999 beginnt und dann 0 wird, dann -1 bis -9, dann wird sie 0 und erreicht ihre ursprüngliche Position. Diese Kreisbewegung x Werte sind für mich seltsam, ich bin nicht in der Lage, eine Formel zu formulieren, die meine x-Position in Zeit umwandeln kann. Kann mir bitte jemand in diesem rein mathematischen und mathematischen Problem helfen?

Antwort

0

könnten Sie versuchen, die folgenden:

den Vektor zwischen Ursprung des Kreises bekommen und die 0 des Kreises, wie 12 auf einer Uhr. Dieser ist konstant.

Dann haben Sie den Vektor zwischen dem Ursprung des Kreises und dem aktuellen Punkt.

Versuchen Sie Folgendes:

Vector3 from = new Vector3(0,0,1);/This is your 12 
Vector3 to = GetCurrentVector(); 
float angle = Quaternion.FromToRotation(Vector3.up, to - from).eulerAngles.z; 
Debug.Log(angle/360f); 
+0

ich nicht undertand Ihre Antwort. was ist "to" hier –

+0

Die zweite von war es, zu sein. Ich habe bearbeitet. – Everts

Verwandte Themen