平移多边形的某些点

平移多边形的某些点

我对这个数字有疑问

\documentclass{standalone} 
\usepackage{tikz, tkz-euclide}
\usetkzobj{all}

\begin{document}
    \begin{tikzpicture}[scale=4]
    \tkzDefPoints{0/0/D, .2/.5/P1, .7/.8/P2, 1.3/.9/P3, 1.8/.8/P4, 
                  2.2/.4/C, 2.4/-.1/P5, 2.3/-.6/B, 1.9/-1/P6, 
                  1.3/-1.1/P7, .6/-.9/A, 0.15/-.5/P8}

    \tkzDrawPolygon[thick](D,P1,P2,P3,P4,C,P5,B,P6,P7,A,P8)

    \tkzDrawPolygon[densely dashed](A,B,C,D)

    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](A,P8,D)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](P6,P7,A)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](B,P6,P7)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](C,P5,B)

    \tkzDrawPoints(A,B,C,D)
    \tkzLabelPoint[left](D){$D$}
    \tkzLabelPoint[right](C){$C$}
    \tkzLabelPoint[below](B){$B$}
    \tkzLabelPoint[below](A){$A$}
    \end{tikzpicture}
\end{document}

我的问题是:如何将点 C 和 D 沿线 CD 向右平移,而不改变这两个点之间的弧?

像这样:

在此处输入图片描述

在此处输入图片描述

答案1

我也不太明白,所以这可能会或可能不会有帮助。

您可以使用 TikZ 库中的距离修饰符语法a定义通过点的线上的坐标。也就是说,坐标bcalc

($(a)!1cm!(b)$)

a是位于坐标和线上的点b,距离 1cm a。您也可以使用负长度,即

($(a)!-1cm!(b)$)

距离 也为 1cm a,但这次是远离它b而不是朝向它。

这使你可以轻松地用相同的向量进行翻译CD但我不确定这是否正是你所需要的。

代码输出

\documentclass[border=5mm]{standalone} 
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[scale=4]
    \tkzDefPoints{0/0/D, .2/.5/P1, .7/.8/P2, 1.3/.9/P3, 1.8/.8/P4, 
                  2.2/.4/C, 2.4/-.1/P5, 2.3/-.6/B, 1.9/-1/P6, 
                  1.3/-1.1/P7, .6/-.9/A, 0.15/-.5/P8}

    \tkzDrawPolygon[thick](D,P1,P2,P3,P4,C,P5,B,P6,P7,A,P8)

    \tkzDrawPolygon[densely dashed](A,B,C,D)

    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](A,P8,D)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](P6,P7,A)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](B,P6,P7)
    \tkzMarkAngle[size=.07,fill=black!40,opacity=0.5](C,P5,B)

    \tkzDrawPoints(A,B,C,D)
    \tkzLabelPoint[left](D){$D$}
    \tkzLabelPoint[right](C){$C$}
    \tkzLabelPoint[below](B){$B$}
    \tkzLabelPoint[below](A){$A$}

    % place DD 3mm from D, on the line towards C
    \coordinate (DD) at ($(D)!3mm!(C)$);

    % place CC 3mm from C, on the line through D and C,
    % the minus sign indicates that the direction is away from D
    \coordinate (CC) at ($(C)!-3mm!(D)$);

    \tkzDrawPolygon[densely dotted](A,B,CC,DD)
\end{tikzpicture}
\end{document}

相关内容