现在也许可以比较全面地回答这个问题了:
1、记对角线交点为E,P在外切四边形内时,应满足 ∠APB+∠CPD=2∠AEB; 这包括对角线交点E、两对角线中垂线的交点、四边形的4个顶点。(9#),轨迹是一个四次曲线在四边形内的一部分(19#)
2、P在外切四边形外时,应满足 ∠APB=∠CPD;这包括四边形的对边交点(两个)、四边形的4个顶点。(9#),轨迹是一个三次曲线在在四边形外的一部分(该曲线还二次经过内切圆的圆心)(19#)
3、P在外切四边形的边上,恒成立(wayne的贡献,12#),即轨迹是四条线段。
所以,现在还能回答为什么前面最开始代数计算的时候化简这么麻烦,因为这里涉及到六个分段函数,四条直线,一个三次曲线,一个四次曲线。
如图:
\[{a,b,c,d,r}=\left\{1,\frac{7}{17},\frac{3}{2},\frac{3}{2},1\right\}\]
\[\left\{\text{A},\left\{\frac{7}{13},\frac{17}{13}\right\}\right\},\left\{\text{B},\left\{-\frac{13}{17},\frac{13}{17}\right\}\right\},\left\{\text{C},\left\{-\frac{3}{2},-1\right\}\right\},\left\{\text{D},\left\{\frac{3}{2},-1\right\}\right\},\left\{\text{E},\left\{-\frac{18}{65},\frac{5}{13}\right\}\right\},\{\text{F},\{-5,-1\}\},\left\{\text{G},\left\{0,\frac{13}{5}\right\}\right\}\]
画图代码如下[增加了计算$F,G$两点,如果$F,G$在无穷远处,代码将报错,暂时不处理了]:
- cc[{x_,y_}]:={x^2+y^2,x,y,1};
- g2[{x_,y_},{x1_,y1_},{x2_,y2_}]:=(y-y1)(x1-x2)-(y1-y2)(x-x1);
- vertical[{x_,y_},{x1_,y1_},{x2_,y2_}]:=(x-(x1+x2)/2)(x1-x2)+(y-(y1+y2)/2)(y1-y2)
- tan\[Theta][{x1_,y1_},{x2_,y2_}]:=(y1-y2)/(x1-x2);
- crossangle[{x1_,y1_},{x2_,y2_},{x3_,y3_}]:=(tan\[Theta][{x2,y2},{x3,y3}]-tan\[Theta][{x1,y1},{x2,y2}])/(1+tan\[Theta][{x1,y1},{x2,y2}]*tan\[Theta][{x2,y2},{x3,y3}]);
- Block[{a=1,b,c=3/2,d=3/2,r=1,n=5,pA,pB,pC,pD},temp={{Subscript[x,A],Subscript[y,A]},{Subscript[x,B],Subscript[y,B]},{-c,-r},{d,-r}};
- b=(-a c d+a r^2+c r^2+d r^2)/(a c+a d+c d-r^2);
- pP={x,y};
- sol=Solve[{Total[pA^2]==a^2+r^2,Total[pB^2]==b^2+r^2,Total[(pB-pC)^2]==(b+c)^2,Total[(pD-pA)^2]==(d+a)^2,Subscript[y,A]!=-r,Subscript[y,B]!=-r}/.Thread[{pA,pB,pC,pD}->temp],{Subscript[x,A],Subscript[y,A],Subscript[x,B],Subscript[y,B]}];
- {pA,pB,pC,pD}=temp/.sol[[1]];
- pE={x,y}/.Quiet[First[Solve[{g2[pP,pA,pC]==0,g2[pP,pB,pD]==0},{x,y}]]];
- pF={x,y}/.Quiet[First[Solve[{g2[pP,pA,pB]==0,g2[pP,pC,pD]==0},{x,y}]]];
- pG={x,y}/.Quiet[First[Solve[{g2[pP,pA,pD]==0,g2[pP,pB,pC]==0},{x,y}]]];
- pts=Transpose[{Characters["ABCDEFG"],{pA,pB,pC,pD,pE,pF,pG}}];
- Print[{a,b,c,d,r}];Print[pts];
- I4=Total/@{{be pA,ae pB,(a+b) pP}/(be+ae+(a+b)),{(c+b) pP,ce pB,be pC}/((c+b)+ce+be),{(c+d) pP,de pC,ce pD}/((c+d)+de+ce),{(a+d) pP,de pA,ae pD}/((a+d)+de+ae)}/.{ae->Norm[pA-pP],be->Norm[pB-pP],ce->Norm[pC-pP],de->Norm[pD-pP]};
- eqs1=(2 (tan\[Theta][pB,pE]-tan\[Theta][pA,pE])/(1+tan\[Theta][pA,pE]*tan\[Theta][pB,pE]))/(1-((tan\[Theta][pA,pE]-tan\[Theta][pB,pE])/(1+tan\[Theta][pA,pE]*tan\[Theta][pB,pE]))^2)-(crossangle[pA,pP,pB]+crossangle[pC,pP,pD])/(1-crossangle[pA,pP,pB]*crossangle[pC,pP,pD]);
- eqs2=crossangle[pA,pP,pB]+crossangle[pC,pP,pD];
- GraphicsRow[{Show[{ContourPlot[Det[cc/@I4]==0,{x,-n,n},{y,-n,n},PlotPoints->100,ContourStyle->{Red,Thickness[0.006]},Axes->True,Frame->False],Graphics[{Thickness[0.003],Circle[],Black,Line[Subsets[pts[[1;;4,2]],{2}]],Thickness[0.002],Dashed,Line[{{pB,pF},{pC,pF},{pA,pG},{pB,pG}}],PointSize[.03],Point[pts[[All,2]]],Table[Text[Style[p[[1]],White,12],p[[2]]],{p,pts}]},Axes->True,Frame->False]}],Show[{ContourPlot[{eqs1==0,eqs2==0,vertical[{x,y},pA,pC]==0,vertical[{x,y},pB,pD]==0},{x,-n,n},{y,-n,n},PlotPoints->100,ContourStyle->{Red,Blue,Green,Green},Axes->True,Frame->False],Graphics[{Thickness[0.003],Circle[],Black,Line[Subsets[pts[[1;;4,2]],{2}]],Thickness[0.002],Dashed,Line[{{pB,pF},{pC,pF},{pA,pG},{pB,pG}}],PointSize[.03],Point[pts[[All,2]]],Table[Text[Style[p[[1]],White,12],p[[2]]],{p,pts}]},Axes->True,Frame->False]}]}]]
复制代码 |