WOLFRAM NOTEBOOK

Wolfram

作者: 杨圣汇 / Wolfram Research
  • 微信公众号
  • 微博公众号
  • 基本案例

    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[]=
  • 符号计算过给定点的垂足坐标
  • 符号计算过给定三角形的外接圆公式
  • 例题

  • 题源: AOPS/Sharygin/Titu/Penn
  • 旋转位似 (Homothety)

  • 构建几何场景
  • 用 TriangleConstruct 找到高和垂足
  • Midpoint 线段中点
  • GeometricAssertion
  • 猜想结论来启发证明过程中的思路
  • 旁心和垂足三角形 (Excenters and Pedal Triangle)

  • 直接调用 TriangleConstruct / TriangleCenter 内置函数
  • Graphics 作图
  • Manipulate 动画交互
  • Locator 选择交互方式
  • 实时计算中间点的坐标

    圆幂定理应用 (Power of Circle)

  • 直接调用 TriangleConstruct / TriangleCenter 内置函数
  • Graphics 作图
  • 验证过 E D F 的圆也经过 C
    直接根据圆幂定理进行验证

    三角形的高平分中线

    如何批量生成满足条件的三角形?
  • 坐标法: 设 A 的坐标为 {xa,ya},B 为 {xb,0}, C 为 {0,0} 。连续使用两次中点公式
  • 等量关系: N 的横坐标 即为 A的横坐标
  • 即所有过某顶点的高垂足分对边为 1 比 2 的三角形都满足条件!或者使用梅涅劳斯定理
    数值验证
  • TriangleConstruct 调用该函数直接生成
  • 简单的证明过程

    复数在平面几何中的应用 (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
    求上述结果的幅角主值
    Wolfram Cloud

    You are using a browser not supported by the Wolfram Cloud

    Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.


    I understand and wish to continue anyway »

    You are using a browser not supported by the Wolfram Cloud. Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.