Ciao ... J'essaie d'énoncer clairement mon problèmesexagésimal à Vector3 et vice-versa
Le langague est C# sur Unity3D et j'essaie d'utiliser ascension droite, et la distance pour Déclinaison construire une scène
ici pour ne se charge pas trop je convertir sexagésimal (AR-> h, m, s DEC-> Deg, m, s) dans un flotteur
---> sexagésimal à Vector3
public static Vector3 SexPositionToVector3(float ascensione_retta, float declinazione, float anni_luce, Vector3 punto_osservazione=default(Vector3))
{
Vector3 ret = Vector3.zero;
// DEC
float y = ((float)Mathf.Sin(Mathf.Deg2Rad * declinazione)) * anni_luce;
float x = ((float)Mathf.Cos(Mathf.Deg2Rad * declinazione)) * anni_luce;// Mathf.Abs
ret = (new Vector3(x, y, 0)) + punto_osservazione;
// AR
Vector3 angoli = new Vector3(0, ascensione_retta, 0);
ret = RotatePointAroundPivot(ret, punto_osservazione, angoli);
return ret;
}
punto_osservazione est quand ra et déc sont calculés à un point différent de vector3.zero;
et
public static Vector3 RotatePointAroundPivot(Vector3 point, Vector3 pivot, Vector3 angles)
{
Vector3 dir = point - pivot;
dir = Quaternion.Euler(angles) * dir;
point = dir + pivot;
return point;
}
Maintenant, je veux revenir de Vector3 à sexagésimal
je pense: anni_luce -> Vector3.Distance (punto_osservazione, point);
mais ar et dec comment inverser cette partie? une idée?