20 规律图形怎样平移?基础图形已画

发布于 2024-11-27 12:55:13

这种图形的画法能不能平移到指定位置?规.png
基础的图形已画出。规律图形平移2.tex
作图已做补充。规律图形2.png
平移3.tex

怎样精确平移到指定位置?例如平移到1+2*根号3

查看更多

关注者
0
被浏览
300
Sagittarius Rover
Sagittarius Rover 2024-11-27
我要成为TikZ糕手/(ㄒoㄒ)/~~

我觉得平移很难操作,而且存在浮点计算误差....
另外scope环境是用于多个画面的,在你这个case下我个人觉得不太适合...

打小就不会找规律,提供一个我觉得非常丑陋的做法...
当然封装成函数便于复用同时加上scope这些得你自己来了,本问题的关键在于找到循环的pattern...

\documentclass[border=1.2cm]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\pgfmathtruncatemacro{\NN}{10}
\newcommand*{\stepfurther}[2]{
    \ifodd#1
        \tkzDefSquare(B#1,A#1)\tkzGetPoints{A#2}{C#2}
        \tkzDrawPolygon[fill=gray!20](B#1,A#1,A#2,C#2)
        \tkzDefTriangle[equilateral](C#2,A#2)\tkzGetPoint{B#2}
        \tkzDrawPolygon(A#2,C#2,B#2)
        \tkzDefTriangle[equilateral](B#1,C#2)\tkzGetPoint{E#2}
        \tkzDrawPolygon(B#1,C#2,E#2)
        \tkzDefTriangle[equilateral](A#2,A#1)\tkzGetPoint{D#2}
        \tkzDrawPolygon(A#2,A#1,D#2)
    \else
        \tkzDefSquare(B#1,A#1)\tkzGetPoints{C#2}{B#2}
        \tkzDrawPolygon[fill=gray!20](B#1,A#1,C#2,B#2)
        \tkzDefTriangle[equilateral](B#1,B#2)\tkzGetPoint{D#2}
        \tkzDrawPolygon(B#1,B#2,D#2)
        \tkzDefTriangle[equilateral](C#2,A#1)\tkzGetPoint{E#2}
        \tkzDrawPolygon(C#2,A#1,E#2)
        \tkzDefTriangle[equilateral](B#2,C#2)\tkzGetPoint{A#2}
        \tkzDrawPolygon(C#2,B#2,A#2)
    \fi
    % \node at (A#2) {$A_#2$};
    % \node at (B#2) {$B_#2$}; 
}
\begin{document}
    \begin{tikzpicture}
        \tkzDefPoint(0,0){B0}
        \tkzDefPoint(-120:1){A0}
        \tkzDefPoint(-1,0){C0}
        \tkzDrawPolygon(A0,B0,C0)
        \foreach \i[count = \cnt from 0] in {1,...,\NN}{
            \stepfurther{\cnt}{\i}
        }
    \end{tikzpicture}
\end{document}

image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览