切于内切圆和最南点

切于内切圆和最南点

如何绘制与三角形内部的 BC 平行的内切圆的切线?此外,如何找到 $I_AX$ 和圆的另一个交点(基本上是最南端的点)?我的进度如下所示,任何帮助都将不胜感激。

\begin{center}
    \begin{asy}
    size(9cm);
    pair A=(2,8), B=(0,0), C=(10,0);
    pair I = incenter(A, B, C);
    pair D = foot(I, B, C);
    draw(B--C,deepcyan);
    draw(incircle(A,B,C));
    draw(excircle(C,B,A), dashed);
    draw(I--D,deepgreen);
    label("$A$", (2,8),N);
    label("$B$", B, dir(180));
    label("$C$", C, NE);
    label("$D$", D, dir(250));
    label("$I$", I, dir(330));
    
    triangle t=triangle(A,B,C);
    point I_A = excenter(t.BC);
    draw(A--I_A,deepcyan);
    label("$I_A$",I_A,S);
    
    pair X = foot(I_A, C,B);
    
    label("$X$", X, dir(45));
    draw(X--I_A,deepgreen);
    draw(A--B+1.1*(B-A),deepcyan);
    draw(A--C+0.8*(C-A),deepcyan);
    
    pair K = foot(A,B,C);
    draw(K--A,royalblue);
    label("$K$", K, dir(250));
    label("$M$", (2,4), 1.2*dir(240));
    draw((2,4)--X,deepgreen);
    draw((2,4)--I_A,royalblue);
    draw(A--X);
    
    dot(A);
    dot(B);
    dot(C);
    dot(D);
    dot(I);
    dot(K);
    dot(I_A);
    dot(X);
    dot((2,4));
    \end{asy}
    \end{center}

在此处输入图片描述

所需图像如下所示。在此处输入图片描述

答案1

清楚的元帖子在这种构造方面也相当出色。内置的几何宏非常少,如 Asymptote 的,但使用下面我展示的和incircle等工具不难找到简单的构造。我已包含一些我希望有用的评论。whateverintersectionpoint

在此处输入图片描述

这已被包裹起来,luamplib因此您可以编译它以lualatex直接生成 PDF。

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
    pair A, B, C, D, E, F, G, I, J, K, M, N, P;

    % define the three triangle points
    A = (40, 160);
    B = origin;
    C = (200, 0);

    % incenter is the intersection of two internal angle bisectors
    I = whatever [A, A + unitvector(B-A) + unitvector(C-A)]
      = whatever [B, B + unitvector(A-B) + unitvector(C-B)];

    % outcenters are the intersection of one internal angle bisector and one external
    J = whatever [A, A + unitvector(B-A) + unitvector(C-A)]
      = whatever [B, B - unitvector(A-B) + unitvector(C-B)];
    
    % this is the standard idiom to find closest point on 
    % a line to a point not on the line
    D = whatever [B, C]; I - D = whatever * (B-C) rotated 90;
    E = whatever [B, C]; J - E = whatever * (B-C) rotated 90;

    path incircle, excircle;
    incircle = fullcircle scaled 2 abs (I-D) shifted I;
    excircle = fullcircle scaled 2 abs (J-E) shifted J;

    draw incircle;
    draw excircle;

    % these were the first two points the OP wanted
    % "intersectionpoint" gives the pair were two lines intersect
    F = (A--B) intersectionpoint ((B--C) rotatedabout(I, 180));
    G = (A--C) intersectionpoint ((B--C) rotatedabout(I, 180));
    N = D rotatedabout(I, 180);

    % same idiom as above to find the pedal point of A
    K = whatever [B, C]; A - K = whatever * (B-C) rotated 90;

    % another way to find an intersection points 
    % even when you need to extend the lines to get the intersection
    % but will not work if the four points are co-linear
    M = whatever [E, I] = whatever [D, J];

    % this is the second point the OP wanted
    P = E rotatedabout(J, 180);

    % now draw some of the lines
    draw A -- J withcolor 2/3[blue, green];
    draw E -- M -- J withcolor 1/2 red;

    % mark right angle...
    draw unitsquare scaled 4 rotated angle (A-K) shifted K withcolor 1/2 white;
    draw A--K withcolor 1/2 white; 
    draw A--P withcolor 1/2 white; 
    draw D--N withcolor 1/2[blue, white];
    draw E--P withcolor 1/2[blue, white];

    draw A -- 2.4[A,B];
    draw A -- 2.1[A,C];
    draw B--C;
    draw F--G;

    % and label the points
    interim dotlabeldiam := 2;
    dotlabel.top ("$A$", A);
    dotlabel.ulft("$B$", B);
    dotlabel.urt ("$C$", C);
    dotlabel.urt ("$D$", D);
    dotlabel.urt ("$E$", E);
    dotlabel.ulft("$F$", F);
    dotlabel.urt ("$G$", G);
    dotlabel.urt ("$I$", I);
    dotlabel.urt ("$J_A$", J);
    dotlabel.bot ("$K$", K);
    dotlabel.lft ("$M$", M);
    dotlabel.bot ("$P$", P);

endfig;
\end{mplibcode}
\end{document}

笔记

  • whatever我在这里的几个地方都用过——这是 MP 的“声明式”方程的一个非常有用的功能。基本上whatever代表您需要的任何值;MP 的方程引擎将计算出所需的准确值。whatever当然,每个值都不同。如果您需要知道实际使用的值,只需whatever用新的未定义数字变量替换,MP 就会将其设置为所需的值。

  • A--B给出一个path从 A 到 B 的 向量。A-B给出一个pair表示从 B 开始到 A 的向量。

  • “中介”语法会找到从一个点到另一个点之间的某个点。因此1/2[A, B]是中点,而1[A, B]是 B,并且2[A, B]在同一方向上比 B 稍远一点...

答案2

您的代码无法编译。似乎混合了geometry.asy和一些私有命令(例如foot三个pair)。此外比+更dot("$A$",A,N)dot(A)label("$A$",N)

我重写了它(尽管代码并不完美),geometry.asy它提供了大量的二维几何函数。

size(10cm);
import geometry;

point A=(2,8), B=(0,0), C=(10,0);
triangle tABC=triangle(A,B,C);
pair I = incenter(A, B, C);
pair D = intouch(tABC.BC);
draw(segment(B,C),deepcyan);
draw(incircle(A,B,C));
draw(excircle(C,B,A), dashed);
draw(segment(I,D),deepgreen);

point I_A = excenter(tABC.BC);
draw(segment(A,I_A),deepcyan);

point X = projection(line(B,C))*I_A;

draw(X--I_A,deepgreen);
draw(line(A,B),deepcyan);
draw(line(A,C),deepcyan);

pair K = foot(tABC.VA);
draw(segment(K,A),royalblue);
point M=intersectionpoint(line(I_A,D),line(X,I));
draw(line(M,X),deepgreen);
draw(line(M,I_A),royalblue);

// first way intersection of the lines XI_A and excircle
//pair[] T=intersectionpoints(line(X,I_A),excircle(C,B,A));
//point pN= T[0]; // could be T[1] it is possible to make a test with B to choose the right point

//second way : symmetry of center I_A applied to M
//point pN=I_A+(I_A-X);
//second way with geometry
point pN=scale(-1,I_A)*X;
draw(line(X,pN));

// for F and G many possibilities (see N)
line d=parallel(I+(I-D),line(B,C));
draw(d);
dot(I+(I-D),red);
point F=intersectionpoint(d,line(A,C));
point G=intersectionpoint(d,line(A,B));

dot("$B$", B, dir(180));
dot("$A$", (2,8),N);
dot("$C$", C, NE);
dot("$D$", D, dir(250));
dot("$I$", I, dir(330));
dot("$X$", X, dir(45));
dot("$I_A$",I_A,S);
dot("$K$", K, dir(250));
dot("$M$", (2,4), 1.2*dir(240));
dot("$F$",F,NE);
dot("$G$",G,NW);
dot("$N$",pN,SW);

这里我使用triangle结构(来自geometry文档)

  • 如果t是三角形,t.AB是边(t.BC等),t.VA是顶点
  • incenter(triangle):返回三角形内切圆的中心
  • intouch(side):返回边side与边所引用的内切圆的接触点。

和 Metapost 解决方案一样,计算所需点的坐标并不困难(N在我的图片中)。您有许多解决方案:圆和线的交点、旋转、向量加法、系数等于 -1 的缩放。

在此处输入图片描述

相关内容