Point
- class compas.geometry.Point(x, y, z=0.0, **kwargs)[source]
Bases:
compas.geometry.primitives._primitive.Primitive
A point is defined by XYZ coordinates.
- Parameters
x (float) – The X coordinate of the point.
y (float) – The Y coordinate of the point.
z (float, optional) – The Z coordinate of the point. Default is
0.0
.
- Attributes
data (dict) – The data representation of the point.
x (float) – The X coordinate of the point.
y (float) – The Y coordinate of the point.
z (float) – The Z coordinate of the point.
Notes
A
Point
object supports direct access to its xyz coordinates through the dot notation, as well list-style access using indices. Indexed access is implemented such that thePoint
behaves like a circular list 1.References
- 1
Stack Overflow. Pythonic Circular List. Available at: https://stackoverflow.com/questions/8951020/pythonic-circular-list.
Examples
>>> p1 = Point(1, 2, 3) >>> p2 = Point(4, 5, 6)
The XYZ coordinates of point objects can be accessed as object attributes or by trating the points as lists.
>>> p1.x 1.0 >>> p1.y 2.0 >>> p1.z 3.0 >>> p1[0] 1.0 >>> p1[1] 2.0 >>> p1[2] 3.0
Point objects support basic arithmetic operations.
>>> p1 + p2 Point(5.000, 7.000, 9.000) >>> p1 * 2 Point(2.000, 4.000, 6.000) >>> p1 ** 2 Point(1.000, 4.000, 9.000) >>> p1 Point(1.000, 2.000, 3.000)
Points and lists can be used interchangeably.
>>> p1 + [4, 5, 6] Point(5.000, 7.000, 9.000)
Arithmetic operations can also be applied to modify a point object in-place.
>>> p1 += p2 >>> p1 *= 2 >>> p1 **= 2 >>> p1 Point(100.000, 196.000, 324.000)
Methods
copy
([cls])Make an independent copy of the data object.
distance_to_line
(line)Compute the distance to a line.
distance_to_plane
(plane)Compute the distance to a plane.
distance_to_point
(point)Compute the distance to another point.
from_data
(data)Construct a point from a data dict.
from_json
(filepath)Construct an object from serialized data contained in a JSON file.
from_jsonstring
(string)Construct an object from serialized data contained in a JSON string.
in_circle
(circle)Determine if the point lies inside the given circle.
in_polygon
(polygon[, convex])Determine if the point lies inside the given polygon.
in_polyhedron
(polyhedron)Determine if the point lies inside the given polyhedron.
in_triangle
(triangle)Determine if the point lies inside the given triangle.
on_circle
(circle)Determine if the point lies on the given circle.
on_line
(line)Determine if the point lies on the given line.
on_polyline
(polyline)Determine if the point lies on the given polyline.
on_segment
(segment)Determine if the point lies on the given segment.
to_data
()Convert an object to its native data representation.
to_json
(filepath[, pretty])Serialize the data representation of an object to a JSON file.
to_jsonstring
([pretty])Serialize the data representation of an object to a JSON string.
transform
(T)Transform this point.
transform_collection
(collection, X)Transform a collection of points.
transformed
(transformation)Returns a transformed copy of this geometry.
transformed_collection
(collection, X)Create a collection of transformed points.
Validate the object's data against its data schema (self.DATASCHEMA).
Validate the object's data against its json schema (self.JSONSCHEMA).