Tikz-3d 中直线上的 3d 投影

Tikz-3d 中直线上的 3d 投影

我正在尝试(在 tikz-3d 中)绘制从点到非坐标轴的线的垂线。问题是如何找到该点的投影。我需要一些与 tikz-euclide 类似的内容:

\tkzDefPointBy[projection=onto B--C](A) \tkzGetPoint{H1}

但在 3D 中。

问题如上,但这段“代码”并没有给出我想要的结果。目标是在空间中绘制三角形 ABC 的垂心。

\documentclass{article}
\usepackage{tikz,tkz-euclide,tikz-3dplot}
\usetkzobj{all}
\usetikzlibrary{intersections}
\begin{document}
\tdplotsetmaincoords{70}{100}
\begin{tikzpicture}[tdplot_main_coords, scale=1]
%============ Object Definitions ============================
\coordinate [label= above:$A$] (A) at (0, 0, 3);
\coordinate [label= right:$B$] (B) at (0, 4, 0);
\coordinate [label= below left:$C$] (C) at (4, 0, 0);
\coordinate [label= below left:$D$] (D) at (0, 0,0);
\tkzDefPointBy[projection=onto B--C](A) \tkzGetPoint{H1}
\tkzDefPointBy[projection=onto A--C](B) \tkzGetPoint{H2}
\tkzInterLL(A,H1)(B,H2) \tkzGetPoint{H}
%============ Denotations ==================================== 
\tkzLabelPoint[below right](H1){$H_1$}
\tkzLabelPoint[left](H2){$H_2$}
\tkzMarkRightAngle[size=0.2](C,H1,A)
\tkzMarkRightAngle[size=0.2](C,H2,B)
\tkzMarkRightAngle[size=0.2](A,D,B)
\tkzMarkRightAngle[size=0.2](A,D,C)
\tkzMarkRightAngle[size=0.2](C,D,B)
%============ Drawing ======================================
\draw [dash pattern=on 5pt off 5pt] (D)--(B);
\draw [dash pattern=on 5pt off 5pt] (D)--(H);
\draw [thick,draw=white,double=black,double distance= 1pt](A)--(H1);
\draw [thick,draw=white,double=black,double distance= 1pt](C)--(A);
\draw (A)--(B);
\draw (B)--(C);
\draw (D)--(A);
\draw (D)--(C);
\draw (B)--(H2);
\tkzDrawPoints(A,B,C,D,H1,H2,H) 
\end{tikzpicture}
\end{document}

输出: 在此处输入图片描述

我使用 tikz-euclid 符号来明确表达我想要的内容。

\tkzDefPointBy[projection=onto B--C](A) \tkzGetPoint{H1}
\tkzDefPointBy[projection=onto A--C](B) \tkzGetPoint{H2} 

应该被 3D 系统中的东西所取代。

答案1

渐近线解:

\documentclass{article}
\usepackage{asymptote}
\begin{document}
\begin{asy}
settings.outformat = "pdf";
settings.render = 0;
import three;
size(5cm, 0);
currentprojection=orthographic((5,2,3));

real a=3;
real b=4;
real c=4;

triple A=(0,0,a);
triple B=(0,b,0);
triple C=(c,0,0);

draw(A--B--C--A,linewidth(1));
draw(O--A^^O--B^^O--C,dashed);

path3 p=O--(6,6*c/b,0);
path3 q=B--C;
path3 p1=O--(6,0,6*c/a);
path3 q1=A--C;

triple H1=intersectionpoint(p,q);
triple H2=intersectionpoint(p1,q1);

path3 h1=A--H1;
path3 h2=B--H2;
triple H=intersectionpoint(h1,h2);

draw(h1);
draw(h2);
draw(O--H,dashed);
dot(Label("$H_2$",align=W),H2);
dot(Label("$H_1$",align=S),H1);
dot(Label("$H$",align=NE),H);
dot(Label("$A$",align=N),A);
dot(Label("$B$",align=E),B);
dot(Label("$C$",align=W),C);
dot(Label("$O$",align=S),O);

\end{asy}

\end{document}

在此处输入图片描述

优点:它可以工作并找到 tkz-euclide 目前无法找到的交点。

缺点:黑点

相关内容