Пример #1
0
        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 });
        }