static public VFXExpression Atan2(VFXExpression coord) { var components = ExtractComponents(coord).ToArray(); var theta = new VFXExpressionATan2(components[1], components[0]); return(theta); }
static public VFXExpression[] RectangularToPolar(VFXExpression coord) { //theta = atan2(coord.y, coord.x) //distance = length(coord) var components = ExtractComponents(coord).ToArray(); var theta = new VFXExpressionATan2(components[1], components[0]); var distance = Length(coord); return(new VFXExpression[] { theta, distance }); }
static public VFXExpression[] RectangularToSpherical(VFXExpression coord) { //distance = length(coord) //theta = atan2(z, x) //phi = asin(y / distance) var components = ExtractComponents(coord).ToArray(); var distance = Length(coord); var theta = new VFXExpressionATan2(components[2], components[0]); var phi = new VFXExpressionASin(components[1] / distance); return(new VFXExpression[] { theta, phi, distance }); }