class sympy.geometry.point.Point(*args, **kwargs)[源代码][源代码]

n维欧几里得空间中的一个点。

参数:
坐标n-坐标值的序列。在特殊

在 n=2 或 3 的情况下,将根据需要创建 Point2D 或 Point3D。

评估 : 如果 \(True\) (默认),所有浮点数都会被转换。如果

精确类型。

暗淡点应具有的坐标数量。如果坐标

如果未指定,它们将用零填充。

on_morph指示当数量为

点的坐标需要通过添加或移除零来改变。可能的值有 \('warn'\)\('error'\)\(ignore`(默认)。当 `*args\) 为空且 \(dim\) 给出时,不会给出警告或错误。尝试移除非零坐标时,总是会引发错误。

属性:
length

将点视为线,这将返回点的长度为0。

原点: 一个表示 \(Point\) 原点的

适当尺寸的空间。

方法

affine_rank(*args)

一组点的仿射秩是包含所有点的最小仿射空间的维度。

are_coplanar(*points)

如果存在一个平面,使得所有点都在该平面上,则返回 True。

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

canberra_distance(p)

从自身到点 p 的堪培拉距离。

class_key()

类的好顺序。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

distance(other)

自身与另一个几何实体之间的欧几里得距离。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dot(p)

返回自身与另一个点的点积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

encloses(o)

如果 o 在 self 的边界内(不在边界上或外部),则返回 True。

equals(other)

返回 self 和 other 的坐标是否一致。

evalf([n, subs, maxn, chop, strict, quad, ...])

将给定的公式计算到 n 位精度。

find(query[, group])

查找所有匹配查询的子表达式。

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

intersection(other)

此点与另一个 GeometryEntity 的交集。

is_collinear(*args)

如果存在包含 \(self\)\(points\) 的行,则返回 \(True\)

is_concyclic(*args)

\(self\) 和给定的点序列是否在同一个圆上?

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

is_scalar_multiple(p)

返回 \(self\) 的每个坐标是否是点 p 中相应坐标的标量倍数。

is_similar(other)

这个几何实体与另一个几何实体相似吗?

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

midpoint(p)

self 和点 p 之间的中点。

n([n, subs, maxn, chop, strict, quad, verbose])

将给定的公式计算到 n 位精度。

parameter_value(other, t)

返回与给定点对应的参数。

project(a, b)

将点 \(a\) 沿法线方向投影到原点和点 \(b\) 之间的直线上。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

reflect(line)

反映一个对象穿过一条线。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

rotate(angle[, pt])

围绕点 pt 逆时针旋转 angle 弧度。

scale([x, y, pt])

通过将 x,y 坐标乘以 x 和 y 来缩放对象。

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

taxicab_distance(p)

从自身到点 p 的出租车距离。

translate([x, y])

通过将 x 和 y 值添加到 x,y 坐标来移动对象。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

Raises:
类型错误当使用除点或序列之外的任何内容进行实例化时
ValueError当使用长度小于2的序列进行实例化时

当尝试减少维度时,如果设置了关键字 \(on_morph='error'\)

参见

sympy.geometry.line.Segment

连接两个点

示例

>>> from sympy import Point
>>> from sympy.abc import x
>>> Point(1, 2, 3)
Point3D(1, 2, 3)
>>> Point([1, 2])
Point2D(1, 2)
>>> Point(0, x)
Point2D(0, x)
>>> Point(dim=4)
Point(0, 0, 0, 0)

浮点数会自动转换为有理数,除非评估标志为假:

>>> Point(0.5, 0.25)
Point2D(1/2, 1/4)
>>> Point(0.5, 0.25, evaluate=False)
Point2D(0.5, 0.25)
static affine_rank(*args)[源代码][源代码]

一组点的仿射秩是最小的包含所有点的仿射空间的维度。例如,如果这些点位于一条直线上(并且不完全相同),它们的仿射秩为1。如果这些点位于一个平面上但不在一条直线上,它们的仿射秩为2。按照惯例,空集的仿射秩为-1。

property ambient_dimension

此点拥有的组件数量。

classmethod are_coplanar(*points)[源代码][源代码]

如果所有点都位于一个平面内,则返回 True。如果 \(len(points) < 3\) 或所有点都是二维的,则返回一个平凡的 True 值。

参数:
一组点
返回:
布尔
Raises:
ValueError如果给定的唯一点少于3个

示例

>>> from sympy import Point3D
>>> p1 = Point3D(1, 2, 2)
>>> p2 = Point3D(2, 7, 2)
>>> p3 = Point3D(0, 0, 2)
>>> p4 = Point3D(1, 1, 2)
>>> Point3D.are_coplanar(p1, p2, p3, p4)
True
>>> p5 = Point3D(0, 1, 3)
>>> Point3D.are_coplanar(p1, p2, p3, p5)
False
canberra_distance(p)[源代码][源代码]

从自身到点 p 的堪培拉距离。

返回到点 p 的水平和垂直距离的加权和。

参数:
p
返回:
canberra_distance水平和垂直的加权和
到点 p 的距离。使用的权重是绝对值的总和。
坐标系。
Raises:
当两个向量均为零时抛出 ValueError。

示例

>>> from sympy import Point
>>> p1, p2 = Point(1, 1), Point(3, 3)
>>> p1.canberra_distance(p2)
1
>>> p1, p2 = Point(0, 0), Point(3, 3)
>>> p1.canberra_distance(p2)
2
distance(other)[源代码][源代码]

自身与另一个几何实体之间的欧几里得距离。

返回:
距离数字或符号表达式。
Raises:
类型错误如果其他对象未被识别为几何实体或是一个

未定义距离的几何实体。

示例

>>> from sympy import Point, Line
>>> p1, p2 = Point(1, 1), Point(4, 5)
>>> l = Line((3, 1), (2, 2))
>>> p1.distance(p2)
5
>>> p1.distance(l)
sqrt(2)

计算出的距离也可能是符号化的:

>>> from sympy.abc import x, y
>>> p3 = Point(x, y)
>>> p3.distance((0, 0))
sqrt(x**2 + y**2)
dot(p)[源代码][源代码]

返回自身与另一个点的点积。

equals(other)[源代码][源代码]

返回 self 和 other 的坐标是否一致。

intersection(other)[源代码][源代码]

此点与另一个 GeometryEntity 的交集。

参数:
其他GeometryEntity 或坐标序列
返回:
交叉点点列表

注释

如果没有任何交集,返回值将是一个空列表;否则,它将包含这个点。

示例

>>> from sympy import Point
>>> p1, p2, p3 = Point(0, 0), Point(1, 1), Point(0, 0)
>>> p1.intersection(p2)
[]
>>> p1.intersection(p3)
[Point2D(0, 0)]
is_collinear(*args)[源代码][源代码]

如果存在包含 \(self\)\(points\) 的行,则返回 \(True\)。否则返回 \(False\)。如果没有给出点,则返回一个显然为 \(True\) 的值。

参数:
参数点的序列
返回:
is_collinear布尔

示例

>>> from sympy import Point
>>> from sympy.abc import x
>>> p1, p2 = Point(0, 0), Point(1, 1)
>>> p3, p4, p5 = Point(2, 2), Point(x, x), Point(1, 2)
>>> Point.is_collinear(p1, p2, p3, p4)
True
>>> Point.is_collinear(p1, p2, p3, p5)
False
is_concyclic(*args)[源代码][源代码]

\(self\) 和给定的点序列是否在同一个圆上?

如果点集共圆则返回 True,否则返回 False。如果点的数量少于 2 个,则返回一个平凡的 True 值。

参数:
参数点的序列
返回:
is_concyclic布尔

示例

>>> from sympy import Point

定义单位圆上的4个点:

>>> p1, p2, p3, p4 = Point(1, 0), (0, 1), (-1, 0), (0, -1)
>>> p1.is_concyclic() == p1.is_concyclic(p2, p3, p4) == True
True

定义一个不在该圆上的点:

>>> p = Point(1, 1)
>>> p.is_concyclic(p1, p2, p3)
False
property is_nonzero

如果任何坐标是非零的则为 True,如果每个坐标都是零则为 False,如果无法确定则为 None。

is_scalar_multiple(p)[源代码][源代码]

返回 \(self\) 的每个坐标是否是点 p 中相应坐标的标量倍数。

property is_zero

如果每个坐标都是零则为 True,如果有任何坐标不是零则为 False,如果无法确定则为 None。

property length

将点视为线,这将返回点的长度为0。

示例

>>> from sympy import Point
>>> p = Point(0, 1)
>>> p.length
0
midpoint(p)[源代码][源代码]

self 和点 p 之间的中点。

参数:
p
返回:
中点

示例

>>> from sympy import Point
>>> p1, p2 = Point(1, 1), Point(13, 5)
>>> p1.midpoint(p2)
Point2D(7, 3)
property origin

与当前点具有相同环境维度的所有零点

property orthogonal_direction

返回一个与包含 \(self\) 和原点的直线正交的非零点。

示例

>>> from sympy import Line, Point
>>> a = Point(1, 2, 3)
>>> a.orthogonal_direction
Point3D(-2, 1, 0)
>>> b = _
>>> Line(b, b.origin).is_perpendicular(Line(a, a.origin))
True
static project(a, b)[源代码][源代码]

将点 \(a\) 沿法线方向投影到原点和点 \(b\) 之间的直线上。

参数:
a
b
返回:
p

示例

>>> from sympy import Line, Point
>>> a = Point(1, 2)
>>> b = Point(2, 5)
>>> z = a.origin
>>> p = Point.project(a, b)
>>> Line(p, a).is_perpendicular(Line(p, b))
True
>>> Point.is_collinear(z, p, b)
True
taxicab_distance(p)[源代码][源代码]

从自身到点 p 的出租车距离。

返回到点 p 的水平和垂直距离之和。

参数:
p
返回:
taxicab_distance水平之和
以及到点 p 的垂直距离。

示例

>>> from sympy import Point
>>> p1, p2 = Point(1, 1), Point(4, 5)
>>> p1.taxicab_distance(p2)
7
property unit

返回与 \(self\) 方向相同且距离原点为 1 的点

class sympy.geometry.point.Point2D(*args, _nocheck=False, **kwargs)[源代码][源代码]

二维欧几里得空间中的一个点。

参数:
坐标

由两个坐标值组成的序列。

属性:
x

返回点的X坐标。

y

返回点的 Y 坐标。

length

将点视为线,这将返回点的长度为0。

方法

affine_rank(*args)

一组点的仿射秩是包含所有点的最小仿射空间的维度。

are_coplanar(*points)

如果存在一个平面,使得所有点都在该平面上,则返回 True。

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

canberra_distance(p)

从自身到点 p 的堪培拉距离。

class_key()

类的好顺序。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

distance(other)

自身与另一个几何实体之间的欧几里得距离。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dot(p)

返回自身与另一个点的点积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

encloses(o)

如果 o 在 self 的边界内(不在边界上或外部),则返回 True。

equals(other)

返回 self 和 other 的坐标是否一致。

evalf([n, subs, maxn, chop, strict, quad, ...])

将给定的公式计算到 n 位精度。

find(query[, group])

查找所有匹配查询的子表达式。

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

intersection(other)

此点与另一个 GeometryEntity 的交集。

is_collinear(*args)

如果存在包含 \(self\)\(points\) 的行,则返回 \(True\)

is_concyclic(*args)

\(self\) 和给定的点序列是否在同一个圆上?

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

is_scalar_multiple(p)

返回 \(self\) 的每个坐标是否是点 p 中相应坐标的标量倍数。

is_similar(other)

这个几何实体与另一个几何实体相似吗?

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

midpoint(p)

self 和点 p 之间的中点。

n([n, subs, maxn, chop, strict, quad, verbose])

将给定的公式计算到 n 位精度。

parameter_value(other, t)

返回与给定点对应的参数。

project(a, b)

将点 \(a\) 沿法线方向投影到原点和点 \(b\) 之间的直线上。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

reflect(line)

反映一个对象穿过一条线。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

rotate(angle[, pt])

围绕点 pt 逆时针旋转 angle 弧度。

scale([x, y, pt])

通过乘以 xy 来缩放点的坐标,在减去 pt -- 默认是 (0, 0) -- 之后再将其加回去(即 pt 是缩放的参考点)。

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

taxicab_distance(p)

从自身到点 p 的出租车距离。

transform(matrix)

返回应用了由 3x3 矩阵 matrix 描述的变换后的点。

translate([x, y])

通过将 x 和 y 添加到点的坐标来移动点。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

Raises:
类型错误

当尝试添加或减去不同维度的点时。当尝试创建一个超过两个维度的点时。当 \(intersection\) 被调用时传入的对象不是 Point 时。

参见

sympy.geometry.line.Segment

连接两个点

示例

>>> from sympy import Point2D
>>> from sympy.abc import x
>>> Point2D(1, 2)
Point2D(1, 2)
>>> Point2D([1, 2])
Point2D(1, 2)
>>> Point2D(0, x)
Point2D(0, x)

浮点数会自动转换为有理数,除非评估标志为假:

>>> Point2D(0.5, 0.25)
Point2D(1/2, 1/4)
>>> Point2D(0.5, 0.25, evaluate=False)
Point2D(0.5, 0.25)
property bounds

返回一个元组 (xmin, ymin, xmax, ymax),表示几何图形的边界矩形。

property coordinates

返回点的两个坐标。

示例

>>> from sympy import Point2D
>>> p = Point2D(0, 1)
>>> p.coordinates
(0, 1)
rotate(angle, pt=None)[源代码][源代码]

围绕点 pt 逆时针旋转 angle 弧度。

参见

translate, scale

示例

>>> from sympy import Point2D, pi
>>> t = Point2D(1, 0)
>>> t.rotate(pi/2)
Point2D(0, 1)
>>> t.rotate(pi/2, (2, 0))
Point2D(2, -1)
scale(x=1, y=1, pt=None)[源代码][源代码]

通过乘以 xy 来缩放点的坐标,在减去 pt – 默认是 (0, 0) – 之后再将其加回去(即 pt 是缩放的参考点)。

参见

rotate, translate

示例

>>> from sympy import Point2D
>>> t = Point2D(1, 1)
>>> t.scale(2)
Point2D(2, 1)
>>> t.scale(2, 2)
Point2D(2, 2)
transform(matrix)[源代码][源代码]

返回应用了由 3x3 矩阵 matrix 描述的变换后的点。

translate(x=0, y=0)[源代码][源代码]

通过将 x 和 y 添加到点的坐标来移动点。

示例

>>> from sympy import Point2D
>>> t = Point2D(0, 1)
>>> t.translate(2)
Point2D(2, 1)
>>> t.translate(2, 2)
Point2D(2, 3)
>>> t + Point2D(2, 2)
Point2D(2, 3)
property x

返回点的X坐标。

示例

>>> from sympy import Point2D
>>> p = Point2D(0, 1)
>>> p.x
0
property y

返回点的 Y 坐标。

示例

>>> from sympy import Point2D
>>> p = Point2D(0, 1)
>>> p.y
1
class sympy.geometry.point.Point3D(*args, _nocheck=False, **kwargs)[源代码][源代码]

三维欧几里得空间中的一个点。

参数:
坐标

一系列3个坐标值。

属性:
x

返回点的X坐标。

y

返回点的 Y 坐标。

z

返回点的 Z 坐标。

length

将点视为线,这将返回点的长度为0。

方法

affine_rank(*args)

一组点的仿射秩是包含所有点的最小仿射空间的维度。

are_collinear(*points)

一系列点是否共线?

are_coplanar(*points)

如果存在一个平面,使得所有点都在该平面上,则返回 True。

as_content_primitive([radical, clear])

一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。

as_dummy()

返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。

atoms(*types)

返回构成当前对象的原子。

canberra_distance(p)

从自身到点 p 的堪培拉距离。

class_key()

类的好顺序。

compare(other)

如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。

count(query)

计算匹配的子表达式的数量。

count_ops([visual])

用于返回操作计数的 count_ops 的包装器。

direction_cosine(point)

给出两点之间的方向余弦

direction_ratio(point)

给出两点之间的方向比率

distance(other)

自身与另一个几何实体之间的欧几里得距离。

doit(**hints)

评估默认情况下不评估的对象,如极限、积分、求和和乘积。

dot(p)

返回自身与另一个点的点积。

dummy_eq(other[, symbol])

比较两个表达式并处理哑符号。

encloses(o)

如果 o 在 self 的边界内(不在边界上或外部),则返回 True。

equals(other)

返回 self 和 other 的坐标是否一致。

evalf([n, subs, maxn, chop, strict, quad, ...])

将给定的公式计算到 n 位精度。

find(query[, group])

查找所有匹配查询的子表达式。

fromiter(args, **assumptions)

从可迭代对象创建一个新对象。

has(*patterns)

测试是否有任何子表达式匹配任何模式。

has_free(*patterns)

如果 self 包含对象 x 作为自由表达式,则返回 True,否则返回 False。

has_xfree(s)

如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。

intersection(other)

此点与另一个 GeometryEntity 的交集。

is_collinear(*args)

如果存在包含 \(self\)\(points\) 的行,则返回 \(True\)

is_concyclic(*args)

\(self\) 和给定的点序列是否在同一个圆上?

is_same(b[, approx])

如果 a 和 b 结构相同则返回 True,否则返回 False。

is_scalar_multiple(p)

返回 \(self\) 的每个坐标是否是点 p 中相应坐标的标量倍数。

is_similar(other)

这个几何实体与另一个几何实体相似吗?

match(pattern[, old])

模式匹配。

matches(expr[, repl_dict, old])

用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。

midpoint(p)

self 和点 p 之间的中点。

n([n, subs, maxn, chop, strict, quad, verbose])

将给定的公式计算到 n 位精度。

parameter_value(other, t)

返回与给定点对应的参数。

project(a, b)

将点 \(a\) 沿法线方向投影到原点和点 \(b\) 之间的直线上。

rcall(*args)

通过表达式树递归应用于参数。

refine([assumption])

请参阅 sympy.assumptions 中的 refine 函数。

reflect(line)

反映一个对象穿过一条线。

replace(query, value[, map, simultaneous, exact])

self 中匹配的子表达式替换为 value

rewrite(*args[, deep])

使用定义的规则重写 self

rotate(angle[, pt])

围绕点 pt 逆时针旋转 angle 弧度。

scale([x, y, z, pt])

通过乘以 xy 来缩放点的坐标,在减去 pt -- 默认是 (0, 0) -- 之后再将其加回去(即 pt 是缩放的参考点)。

simplify(**kwargs)

请参阅 sympy.simplify 中的 simplify 函数。

sort_key([order])

返回一个排序键。

subs(*args, **kwargs)

在简化参数后,在表达式中用新内容替换旧内容。

taxicab_distance(p)

从自身到点 p 的出租车距离。

transform(matrix)

返回应用了4x4矩阵 matrix 描述的变换后的点。

translate([x, y, z])

通过将 x 和 y 添加到点的坐标来移动点。

xreplace(rule)

替换表达式中对象的出现。

复制

could_extract_minus_sign

is_hypergeometric

Raises:
类型错误

当尝试对不同维度的点进行加减操作时。当 \(intersection\) 被调用时传入的不是 Point 对象。

示例

>>> from sympy import Point3D
>>> from sympy.abc import x
>>> Point3D(1, 2, 3)
Point3D(1, 2, 3)
>>> Point3D([1, 2, 3])
Point3D(1, 2, 3)
>>> Point3D(0, x, 3)
Point3D(0, x, 3)

浮点数会自动转换为有理数,除非评估标志为假:

>>> Point3D(0.5, 0.25, 2)
Point3D(1/2, 1/4, 2)
>>> Point3D(0.5, 0.25, 3, evaluate=False)
Point3D(0.5, 0.25, 3)
static are_collinear(*points)[源代码][源代码]

一系列点是否共线?

测试一组点是否共线。如果这组点共线,则返回 True,否则返回 False。

参数:
点的序列
返回:
are_collinear布尔

示例

>>> from sympy import Point3D
>>> from sympy.abc import x
>>> p1, p2 = Point3D(0, 0, 0), Point3D(1, 1, 1)
>>> p3, p4, p5 = Point3D(2, 2, 2), Point3D(x, x, x), Point3D(1, 2, 6)
>>> Point3D.are_collinear(p1, p2, p3, p4)
True
>>> Point3D.are_collinear(p1, p2, p3, p5)
False
property coordinates

返回点的三个坐标。

示例

>>> from sympy import Point3D
>>> p = Point3D(0, 1, 2)
>>> p.coordinates
(0, 1, 2)
direction_cosine(point)[源代码][源代码]

给出两点之间的方向余弦

参数:
pPoint3D
返回:
列表

示例

>>> from sympy import Point3D
>>> p1 = Point3D(1, 2, 3)
>>> p1.direction_cosine(Point3D(2, 3, 5))
[sqrt(6)/6, sqrt(6)/6, sqrt(6)/3]
direction_ratio(point)[源代码][源代码]

给出两点之间的方向比率

参数:
pPoint3D
返回:
列表

示例

>>> from sympy import Point3D
>>> p1 = Point3D(1, 2, 3)
>>> p1.direction_ratio(Point3D(2, 3, 5))
[1, 1, 2]
intersection(other)[源代码][源代码]

此点与另一个 GeometryEntity 的交集。

参数:
其他GeometryEntity 或坐标序列
返回:
交叉点点列表

注释

如果没有任何交集,返回值将是一个空列表;否则,它将包含这个点。

示例

>>> from sympy import Point3D
>>> p1, p2, p3 = Point3D(0, 0, 0), Point3D(1, 1, 1), Point3D(0, 0, 0)
>>> p1.intersection(p2)
[]
>>> p1.intersection(p3)
[Point3D(0, 0, 0)]
scale(x=1, y=1, z=1, pt=None)[源代码][源代码]

通过乘以 xy 来缩放点的坐标,在减去 pt – 默认是 (0, 0) – 之后再将其加回去(即 pt 是缩放的参考点)。

参见

translate

示例

>>> from sympy import Point3D
>>> t = Point3D(1, 1, 1)
>>> t.scale(2)
Point3D(2, 1, 1)
>>> t.scale(2, 2)
Point3D(2, 2, 1)
transform(matrix)[源代码][源代码]

返回应用了4x4矩阵 matrix 描述的变换后的点。

translate(x=0, y=0, z=0)[源代码][源代码]

通过将 x 和 y 添加到点的坐标来移动点。

参见

scale

示例

>>> from sympy import Point3D
>>> t = Point3D(0, 1, 1)
>>> t.translate(2)
Point3D(2, 1, 1)
>>> t.translate(2, 2)
Point3D(2, 3, 1)
>>> t + Point3D(2, 2, 2)
Point3D(2, 3, 3)
property x

返回点的X坐标。

示例

>>> from sympy import Point3D
>>> p = Point3D(0, 1, 3)
>>> p.x
0
property y

返回点的 Y 坐标。

示例

>>> from sympy import Point3D
>>> p = Point3D(0, 1, 2)
>>> p.y
1
property z

返回点的 Z 坐标。

示例

>>> from sympy import Point3D
>>> p = Point3D(0, 1, 1)
>>> p.z
1