Wolfram 语言在平面几何中的应用
Wolfram 语言在平面几何中的应用
作者: 杨圣汇 / Wolfram Research
◼
微信公众号
◼
微博公众号
基本案例
基本案例
GeometricScene 几何场景
GeometricScene 几何场景
◼
构建一个含 30 度角的三角形
In[]:=
Clear[a,b,c]
In[]:=
gs1=GeometricScene[{a,b,c},{Triangle[{a,b,c}],PlanarAngle[{a,b,c}]30Degree}]
Out[]=
GeometricScene[{{a,b,c},{}},{Triangle[{a,b,c}],PlanarAngle[{a,b,c}]30°},{}]
RandomInstance 通过伪随机数和内置数值求解找到一个符合条件的实例
In[]:=
tri1=RandomInstance[gs1]
In[]:=
tri1=
;
获取每个顶点的坐标
In[]:=
pts1=tri1["Points"]
Out[]=
{a{-1.61348,1.10461},b{-4.33645,-1.9806},c{-0.662026,-0.746252}}
如果需要多个
In[]:=
RandomInstance[gs1,3]
Out[]=
,
,
产生可以重复的一组伪随机构型
RandomInstance[gs1,3,RandomSeeding1234]
Out[]=
,
,
◼
构建一个含 30 度角的直角三角形, 其中直角顶点在原点,最短边长是 1
In[]:=
gs2=GeometricScene[{a{1,0},b,c{0,0}},{Triangle[{a,b,c}],PlanarAngle[{a,b,c}]30°,PlanarAngle[{a,c,b}]90°}];
In[]:=
tri2=RandomInstance[gs2]
Out[]=
In[]:=
Head[tri2]
Out[]=
GeometricScene
In[]:=
tri2["Points"]
Out[]=
{a{1.,0.},b{0.,-1.73205},c{0.,0.}}
◼
计算第一个三角形的面积和周长
In[]:=
tri2g=Triangle[{a,b,c}]/.tri2["Points"];
使用通用函数
In[]:=
{Area[tri2g],Perimeter[tri2g]}
Out[]=
{0.866025,4.73205}
或者使用 TriangleMeasurement
In[]:=
{TriangleMeasurement[tri2g,"Area"],TriangleMeasurement[tri2g,"Perimeter"]}
Out[]=
{0.866025,4.73205}
构造三角形以及重要的心和线段/直线
构造三角形以及重要的心和线段/直线
经过点 B 垂直于底边 AC 的高
In[]:=
ptb=b/.pts1;ptc=c/.pts1;
In[]:=
alt=TriangleConstruct[tri1g,{"Altitude",ptb}]
Out[]=
Line[{{-2.53032,4.21553},{1.04396,-3.41625}}]
In[]:=
Show[Graphics[{Dashed,alt}],tri1["Graphics"]]
Out[]=
外接圆
tri1g=Triangle[{a,b,c}]/.tri1["Points"];
In[]:=
circ=TriangleConstruct[tri1g,"Circumcircle"]
Out[]=
Circle[{-1.33226,-0.176021},4.55203]
In[]:=
Graphics[{Style[tri1g,Opacity[0.2]],circ}]
Out[]=
或者
In[]:=
Show[Graphics[{Dashed,circ}],tri1["Graphics"]]
Out[]=
◼
符号计算过给定点的垂足坐标
◼
符号计算过给定三角形的外接圆公式
例题
例题
旋转位似 (Homothety)
旋转位似 (Homothety)
◼
构建几何场景
◼
用 TriangleConstruct 找到高和垂足
◼
Midpoint 线段中点
◼
GeometricAssertion
◼
猜想结论来启发证明过程中的思路
旁心和垂足三角形 (Excenters and Pedal Triangle)
旁心和垂足三角形 (Excenters and Pedal Triangle)
◼
直接调用 TriangleConstruct / TriangleCenter 内置函数
◼
Graphics 作图
◼
Manipulate 动画交互
◼
Locator 选择交互方式
实时计算中间点的坐标
◼
直接调用 TriangleConstruct / TriangleCenter 内置函数
◼
Graphics 作图
验证过 E D F 的圆也经过 C
直接根据圆幂定理进行验证
三角形的高平分中线
三角形的高平分中线
如何批量生成满足条件的三角形?
◼
坐标法: 设 A 的坐标为 {xa,ya},B 为 {xb,0}, C 为 {0,0} 。连续使用两次中点公式
◼
等量关系: N 的横坐标 即为 A的横坐标
即所有过某顶点的高垂足分对边为 1 比 2 的三角形都满足条件!或者使用梅涅劳斯定理
数值验证
◼
TriangleConstruct 调用该函数直接生成
简单的证明过程
复数在平面几何中的应用 (Complex Rotation)
复数在平面几何中的应用 (Complex Rotation)
弧度转换为角度值
添加辅助线
找到关键三角形的全等关系来帮助证明
复数方法:
In[]:=
complex rotation
复平面上的六十度旋转
不失一般性 A = 2, B = 2 k I 其中 k 为正实数
通过简单复数计算找到
化简上式并且找幅角主值
非对称螺旋桨
非对称螺旋桨
考虑一个更为简单的形式
利用复数来证明结果:θ1 = 角 EOD/θ2 = 角 COB / O = {0,0} / E = 1. 则 角 AOF = π - θ1-θ2. 直接使用三次中点公式
通过计算两个复数的夹角来计算角 LKM
求上述结果的幅角主值