如何寻找坐标?

如何寻找坐标?

通过使用交点命令,我能够使线$\mathcal{P}_{t_{1},\gamma}$ 在集合外部以虚线表示。但是,我很好奇我是否可以从该线的内部部分取某个点,例如中点?

从数学中我们知道,如果我们有点$(x_{1},y_{1})$$(x_{2},y_{2})$,那么沿着它们延伸的线上的点的形式为$(\lambda x_{1}+(1-\lambda)x_{2},\lambda y_{1}+(1-\lambda)y_{2})$

在这种情况下$(x_{1},y_{1})$$(x_{2},y_{2})$是交点(po1)(po2)(在代码中)。我们如何找到线上的任意一点并将其 与新线(po1) -- (po2)连接起来?(7.23,8)

在任何一点上,我都意味着对其进行参数化,就像我们在第二段中所做的那样。

\documentclass{article}
\usepackage{tikz}
\usepackage[mathcal]{euscript}
\usetikzlibrary{arrows,shapes}
\usetikzlibrary{shapes,calc,positioning}
\usetikzlibrary{calc,intersections}

\begin{document}
\begin{tikzpicture}[scale=0.5pt]
\draw[line width=0.5pt,name path=cur] plot [smooth cycle] 
    coordinates{(0.43,8.8)  (1.23,9.4)  (2.03,9.4)
                (3.03,9.3)  (4.03,9.5)  (5.43,8.4)
                (4.83,6)    (7.36,6.27) (8.43,6.27)
                (9.43,4.2)  (8.63,2.6)  (5.63,1)
                (4.23,2.6)  (1.23,6)};
\draw[dashed,line width=0.3pt,name path=lin1] (0,10.6)--(9.5,0.5);
\draw[dashed,line width=0.3pt,name path=lin2] (2,10.6)--(11.5,0.5);
\path [name intersections={of={lin1 and cur}, total=\n}]  
\foreach \i in {1,...,\n} {(intersection-\i) coordinate(po\i)};
\draw[line width=0.5pt] (po1)--(po2);
\path [name intersections={of={lin2 and cur}, total=\n}]  
\foreach \i in {1,...,\n} {(intersection-\i) coordinate(po\i)};
\draw[line width=0.5pt] (po1)--(po2);
\draw[line width=0.5pt] (po3)--(po4);
\draw (6.2,4) node[below left] {$E_{t_{1},\gamma}$};
\draw[->,line width=0.5pt] (7.23,8)--(8.83,9.6);
\draw (8.03,8.8) node[below right] {$\gamma$};
\draw (7,1) node[below right] {$\mathcal{P}_{t_{1},\gamma}$};
\draw (13,1) node[above left] {$\mathcal{P}_{t_{2},\gamma}$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

添加怎么样

\path (po1) -- (po2) coordinate[pos=0.90] (btw1a2);
\draw[orange] (btw1a2) -- (7.23,8);

在图片的末尾。

您可以更改为和pos=<position>之间的任意值来获得所需的点。01

在此处输入图片描述

答案2

库已经加载,然后和calc之间的中间(或任何点)很容易:(po1)(po2)

($(po1)!0.5!(po2)$)

(po1)和之间的点(po2)由 0 到 1 之间的数字指定。0 表示第一个点,1 表示第二个点。也可以指定负值或大于 1 的值来获取线外的点,由 和(po1)定义(po2)

相关内容