Skip to content

convert_point_3d_cart_to_spherConvertPoint3dCartToSpherConvertPoint3dCartToSpherconvert_point_3d_cart_to_spherconvert_point_3d_cart_to_spher🔗

Short description🔗

convert_point_3d_cart_to_spherConvertPoint3dCartToSpherConvertPoint3dCartToSpherconvert_point_3d_cart_to_spherconvert_point_3d_cart_to_spher — Convert Cartesian coordinates of a 3D point to spherical coordinates.

Signature🔗

convert_point_3d_cart_to_spher( real X, real Y, real Z, string EquatPlaneNormal, string ZeroMeridian, out angle.rad Longitude, out angle.rad Latitude, out real Radius )void ConvertPoint3dCartToSpher( const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& EquatPlaneNormal, const HTuple& ZeroMeridian, HTuple* Longitude, HTuple* Latitude, HTuple* Radius )static void HOperatorSet.ConvertPoint3dCartToSpher( HTuple x, HTuple y, HTuple z, HTuple equatPlaneNormal, HTuple zeroMeridian, out HTuple longitude, out HTuple latitude, out HTuple radius )def convert_point_3d_cart_to_spher( x: MaybeSequence[float], y: MaybeSequence[float], z: MaybeSequence[float], equat_plane_normal: str, zero_meridian: str ) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]

def convert_point_3d_cart_to_spher_s( x: MaybeSequence[float], y: MaybeSequence[float], z: MaybeSequence[float], equat_plane_normal: str, zero_meridian: str ) -> Tuple[float, float, float]Herror convert_point_3d_cart_to_spher( double X, double Y, double Z, const char* EquatPlaneNormal, const char* ZeroMeridian, double* Longitude, double* Latitude, double* Radius )

Herror T_convert_point_3d_cart_to_spher( const Htuple X, const Htuple Y, const Htuple Z, const Htuple EquatPlaneNormal, const Htuple ZeroMeridian, Htuple* Longitude, Htuple* Latitude, Htuple* Radius )

static HTuple HMisc::ConvertPoint3dCartToSpher( const HTuple& X, const HTuple& Y, const HTuple& Z, const HString& EquatPlaneNormal, const HString& ZeroMeridian, HTuple* Latitude, HTuple* Radius )

static double HMisc::ConvertPoint3dCartToSpher( double X, double Y, double Z, const HString& EquatPlaneNormal, const HString& ZeroMeridian, double* Latitude, double* Radius )

static double HMisc::ConvertPoint3dCartToSpher( double X, double Y, double Z, const char* EquatPlaneNormal, const char* ZeroMeridian, double* Latitude, double* Radius )

static double HMisc::ConvertPoint3dCartToSpher( double X, double Y, double Z, const wchar_t* EquatPlaneNormal, const wchar_t* ZeroMeridian, double* Latitude, double* Radius ) (Windows only)

static HTuple HMisc.ConvertPoint3dCartToSpher( HTuple x, HTuple y, HTuple z, string equatPlaneNormal, string zeroMeridian, out HTuple latitude, out HTuple radius )

static double HMisc.ConvertPoint3dCartToSpher( double x, double y, double z, string equatPlaneNormal, string zeroMeridian, out double latitude, out double radius )

Description🔗

The operator convert_point_3d_cart_to_spherConvertPoint3dCartToSpher converts Cartesian coordinates of a 3D point, which are given in Xxx, Yyy, and Zzz, into spherical coordinates. The spherical coordinates are returned in Longitudelongitudelongitude, Latitudelatitudelatitude, and Radiusradiusradius. The Longitudelongitudelongitude is returned in the range \([-\pi,+\pi]\) while the Latitudelatitudelatitude is returned in the range \([-\pi/2,+\pi/2]\). Furthermore, the latitude of the north pole is \(\pi/2\), and hence, the latitude of the south pole is \(-\pi/2\).

The orientation of the spherical coordinate system with respect to the Cartesian coordinate system can be specified with the parameters EquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianzeroMeridianzero_meridian.

EquatPlaneNormalequatPlaneNormalequat_plane_normal determines the normal of the equatorial plane (longitude == 0) pointing to the north pole (positive latitude) and may take the following values:

  • 'x'"x": The equatorial plane is the yz plane. The positive x axis points to the north pole.

  • '-x'"-x": The equatorial plane is the yz plane. The positive x axis points to the south pole.

  • 'y'"y": The equatorial plane is the xz plane. The positive y axis points to the north pole.

  • '-y'"-y": The equatorial plane is the xz plane. The positive y axis points to the south pole.

  • 'z'"z": The equatorial plane is the xy plane. The positive z axis points to the north pole.

  • '-z'"-z": The equatorial plane is the xy plane. The positive z axis points to the south pole.

The position of the zero meridian can be specified with the parameter ZeroMeridianzeroMeridianzero_meridian. For this, the coordinate axis (lying in the equatorial plane) that points to the zero meridian must be passed. The following values for ZeroMeridianzeroMeridianzero_meridian are valid:

  • 'x'"x": The positive x axis points in the direction of the zero meridian.

  • '-x'"-x": The negative x axis points in the direction of the zero meridian.

  • 'y'"y": The positive y axis points in the direction of the zero meridian.

  • '-y'"-y": The negative y axis points in the direction of the zero meridian.

  • 'z'"z": The positive z axis points in the direction of the zero meridian.

  • '-z'"-z": The negative z axis points in the direction of the zero meridian.

Only reasonable combinations of EquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianzeroMeridianzero_meridian are permitted, i.e., the normal of the equatorial plane must not be parallel to the direction of the zero meridian. For example, the combination EquatPlaneNormalequatPlaneNormalequat_plane_normal='y'"y" and ZeroMeridianzeroMeridianzero_meridian='-y'"-y" is not permitted.

Note that in order to guarantee a consistent conversion back from spherical to Cartesian coordinates by using convert_point_3d_spher_to_cartConvertPoint3dSpherToCart, the same values must be passed for EquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianzeroMeridianzero_meridian as were passed to convert_point_3d_cart_to_spherConvertPoint3dCartToSpher.

The operator convert_point_3d_cart_to_spherConvertPoint3dCartToSpher can be used, for example, to convert a given camera position into spherical coordinates. If multiple camera positions are converted in this way, one obtains a pose range (in spherical coordinates), which can be passed to create_shape_model_3dCreateShapeModel3d in order to create a 3D shape model.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

Xxx (input_control) real(-array) → (real)HTuple (double)HTuple (double)MaybeSequence[float]Htuple (double)

X coordinate of the 3D point.

Yyy (input_control) real(-array) → (real)HTuple (double)HTuple (double)MaybeSequence[float]Htuple (double)

Y coordinate of the 3D point.

Zzz (input_control) real(-array) → (real)HTuple (double)HTuple (double)MaybeSequence[float]Htuple (double)

Z coordinate of the 3D point.

EquatPlaneNormalequatPlaneNormalequat_plane_normal (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Normal vector of the equatorial plane (points to the north pole).

Default: '-y'"-y"
List of values: '-x', '-y', '-z', 'x', 'y', 'z'"-x", "-y", "-z", "x", "y", "z"

ZeroMeridianzeroMeridianzero_meridian (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Coordinate axis in the equatorial plane that points to the zero meridian.

Default: '-z'"-z"
List of values: '-x', '-y', '-z', 'x', 'y', 'z'"-x", "-y", "-z", "x", "y", "z"

Longitudelongitudelongitude (output_control) angle.rad(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Longitude of the 3D point.

Latitudelatitudelatitude (output_control) angle.rad(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Latitude of the 3D point.

Radiusradiusradius (output_control) real(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Radius of the 3D point.

Result🔗

If the parameters are valid, the operator convert_point_3d_cart_to_spherConvertPoint3dCartToSpher returns the value 2 (H_MSG_TRUE). If necessary an exception is raised.

Combinations with other operators🔗

Combinations

Possible successors

create_shape_model_3dCreateShapeModel3d, find_shape_model_3dFindShapeModel3d

See also

convert_point_3d_spher_to_cartConvertPoint3dSpherToCart

Module🔗

3D Metrology