综合几何

Wolfram 语言不仅广泛支持分析几何,还支持适于自动坐标无关推理的综合几何的符号表示.
场景表示与可视化
综合几何场景在 Wolfram 语言中用 GeometricScene 表示. 场景包含表示命名点和量的参数,以及由符号二维区域和涉及那些参数的断言组成的假设. 可以添加结论表示那些假设包含的几何定理或猜测. 通过指定出现在场景中的所有参数的坐标和值表示场景的特殊例子. 同样场景的多个例子可以用单个 GeometricScene 对象表示.
GeometricScene[{p1,p2,},{hyp1,hyp2,}]
由符号点 pi 的假设 hypi 定义的抽象二维几何场景
GeometricScene[{{p1,p2,},{k1,k2,}},hyps]
场景的假设取决于符号标量值 ki
GeometricScene[{p1{x1,y1},p2{x2,y2},},hyps]
具有每个点的显式坐标的几何场景的特定实例
GeometricScene[{{p1{x11,y11},},{p1{x21,y21},},},hyps]
场景特定实例的集合
GeometricScene[,,{con1,con2,}]
场景连同一些关于它的结论 coni
GeometricScene[{scene1,scene2,}]
把多个场景实例组合进一个场景对象
几何场景的封装.
最简单的几何场景只包含点的列表和假设的列表.
以下场景包含一个外接三角形,其中一条边在直径上:
通过使用 RandomInstance 查找场景的特殊例子可视化几何场景.
RandomInstance[scene]
找到场景的随机实例
RandomInstance[scene,n]
找到 n 个实例
找到几何场景实例的函数.
显示场景的交互式实例:
以下找到场景的多个实例:
许多二维区域可用于几何场景的假设. 所有出现在几何场景假设中的区域被假设为非退化并显示在该场景的实例中:
AngleBisector[{p,q,r}]
无限线分割角度 p q r
Circle[p,r]
半径为 r 的圆,中心在点 p
CircleThrough[{p1,p2,}]
通过点 pi 的圆
Circumsphere[{p1,p2,p3}]
通过点 pi 的球
Disk[p,r]
半径为 r 的填充圆盘,中心在点 p
HalfLine[{p,q}]
半无限线或射线,起点在点 p 并通过点 q
InfiniteLine[{p,q}]
无限线通过点 pq
Insphere[{p1,p2,p3}]
与三角形 p1 p2 p3 边相切的球
Line[{p1,p2,}]
按序通过点 pi 的线段
Midpoint[{p,q}]
线段 p q 的中点
PerpendicularBisector[{p,q}]
线段 p q 的垂直平分线
Point[p]
p
Polygon[{p1,p2,}]
带有顶点 pi 的多边形
RegionBoundary[reg]
区域 reg 的边界
RegionCentroid[reg]
区域 reg 的质心
RegionNearest[reg,p]
最接近于区域 reg 中点 p 的点
Triangle[{p,q,r}]
带有顶点 pqr 的三角形
TriangleCenter[{p,q,r},spec]
spec 规范的三角形 p q r 的中心
TriangleConstruct[{p,q,r},spec]
由规范为 spec 的三角形 p q r 定义的结构化的几何区域
GeometricScene 中支持的二维区域.
这是更复杂的几何场景:
假设也可以是几何断言或由场景元素定义的涉及几何量的方程.
ArcLength[reg]
区域 reg 的弧长
Area[reg]
区域 reg 的面积
EuclideanDistance[p,q]
pq 之间的欧几里得距离
Perimeter[reg]
区域 reg 的周长
PlanarAngle[{p,q,r}]
度量角度 p q r
PolygonAngle[poly,p]
在顶点 p 处多边形 poly 的顶角
RegionDistance[reg,p]
从点 p 到区域 reg 的距离
RegionMeasure[reg]
度量区域 reg
SignedRegionDistance[reg,p]
从点 p 到区域 reg 的带符号距离
TriangleMeasurement[{p,q,r},spec]
规范为 spec 的三角形 p q r 度量
GeometricScene 支持的几何量.
preg
p 是区域 reg 元素的断言
x1
区域/量 xi 相等的断言
GeometricAssertion[objs,prop]
对象 objs 满足属性 prop 的断言
GeometricStep[hyps,label]
由多个假设组成的步骤
RegionMember[reg,p]
p 是区域 reg 成员的断言
GeometricScene 支持的断言.
以下是布拉马古普塔(Brahmagupta)定理的描述:
GeometricScene 也支持样式:
Style[objs,opts]
指定样式
GeometricStylingRules
设置与模式匹配的所有结构的样式
GeometricScene 中指定样式.
找到完美的多边形分割:
构造一个等边三角形:
查找猜想
Wolfram 语言可以使用这些场景描述找到持有几何场景的猜想.
FindGeometricConjectures[scene]
查找持有 scene 的猜想
FindGeometricConjectures[{scene1,scene2,}]
查找可能持有 scenei 实例的猜想
FindGeometricConjectures[scenes,patt]
查找形式为 patt 的猜想
FindGeometricConjectures[scenes,patt,n]
找到 n 个猜想
查找几何场景猜想的函数.
发现泰勒斯 (Thales) 的定理:
发现帕普斯 (Pappus) 六边形定理:
发现科斯尼塔 (Kosnita) 定理:
发现 FinslerHadwiger 定理:
几何推理
Wolfram 语言可以使用 GeometricSolveValues 等函数对几何场景进行逻辑推理.
GeometricSolveValues[scene,expr]
求解由 scene 定义的符号几何量 expr
GeometricSolveValues[scene,{expr1,expr2,}]
求解由 scene 定义的多个数量 expr1,expr2,
求解几何场景中的值的函数.
求以下场景中四边形 的面积:
求一般场景和在该场景的特定实例中三角形的面积:
可以使用 GeometricTest 对几何对象进行推理.
GeometricTest[obj,prop]
测试几何对象 obj 是否满足 prop
GeometricTest[{obj1,obj2,},prop]
测试 obji 是否满足 prop
GeometricTest[objs,prop1,prop2,]
测试 objs 是否满足每个 propi
测试几何对象是否满足给定属性的函数.
判断三点是否共线:
求三个抽象点共线的条件:
求多个谓词在一个几何对象上成立的条件: