初中时意外发现数学课本上有这么一个好玩的图

大概就是把两条相等线段A、B分为10个小段并在点上标序号,A线段1点连B线段9点,2点连8点,依次类推。

假设有这么一个框架图

按照第一张图的方式进一步绘图

完整的tex文件代码如下:

\documentclass{article}
\usepackage{tikz}
\usepackage{geometry}
\pagestyle{empty}
\geometry{a4paper,left = 0.1cm, right = 0.1cm, top = 4cm, bottom = 2.5cm}
\begin{document}
%----------------框架----------------
\begin{center}
\begin{tikzpicture}
\draw[->](0,0)--(10.5,0);%坐标横线
\draw[->](0,0)--(0,10.5);%坐标纵线
\foreach\x in{1,...,10}
{
\draw(\x ,0.1cm)--(\x ,-0.1cm)node[anchor=north] {$\x$};%anchor表示方位
\draw(0.1cm,\x)--(-0.1cm,\x)node[anchor=east] {$\x$};%anchor表示方位
\draw(0,\x)--(10-\x,0);
} \end{tikzpicture}
\end{center}\par
%----------------万花图框架----------------
\begin{center}
\begin{tikzpicture}[scale=0.6]
\draw(-10,0)--(10,0);%坐标横线
\draw(0,-10)--(0,10);%坐标纵线
\draw(-7.07,-7.07)--(7.07,7.07);%正斜
\draw(7.07,-7.07)--(-7.07,7.07);%反斜
%外圈框架
\draw(0,10)--(7.07,10+7.07);
\draw(7.07,7.07)--(10+7.07,7.07);
\draw(10,0)--(10+7.07,-7.07);
\draw(7.07,-7.07)--(7.07,-10-7.07);
\draw(0,-10)--(-7.07,-10-7.07);
\draw(-7.07,-7.07)--(-10-7.07,-7.07);
\draw(-10,0)--(-10-7.07,7.07);
\draw(-7.07,7.07)--(-7.07,7.07+10); \end{tikzpicture}
\end{center}\par
%----------------万花图----------------
\begin{center}
\begin{tikzpicture}[scale=0.6]
\draw(-10,0)--(10,0);%坐标横线
\draw(0,-10)--(0,10);%坐标纵线
\draw(-7.07,-7.07)--(7.07,7.07);%正斜
\draw(7.07,-7.07)--(-7.07,7.07);%反斜
%外圈框架
\draw(0,10)--(7.07,10+7.07);
\draw(7.07,7.07)--(10+7.07,7.07);
\draw(10,0)--(10+7.07,-7.07);
\draw(7.07,-7.07)--(7.07,-10-7.07);
\draw(0,-10)--(-7.07,-10-7.07);
\draw(-7.07,-7.07)--(-10-7.07,-7.07);
\draw(-10,0)--(-10-7.07,7.07);
\draw(-7.07,7.07)--(-7.07,7.07+10);
\foreach\x in{1,...,9}
{
%内圈
\draw(0,\x)--(7.07-\x/1.41,7.07-\x/1.41);
\draw(\x,0)--(7.07-\x/1.41,7.07-\x/1.41);
\draw(0,-\x)--(7.07-\x/1.41,-7.07+\x/1.41);
\draw(\x,0)--(7.07-\x/1.41,-7.07+\x/1.41);
\draw(0,-\x)--(-7.07+\x/1.41,-7.07+\x/1.41);
\draw(-\x,0)--(-7.07+\x/1.41,-7.07+\x/1.41);
\draw(0,\x)--(-7.07+\x/1.41,7.07-\x/1.41);
\draw(-\x,0)--(-7.07+\x/1.41,7.07-\x/1.41);
%外圈
\draw(0,\x)--(\x/1.41,10+\x/1.41);
\draw(\x/1.41,\x/1.41)--(7.07+\x,7.07);
\draw(\x,0)--(10+\x/1.41,-\x/1.41);
\draw(\x/1.41,-\x/1.41)--(7.07,-7.07-\x);
\draw(0,-\x)--(-\x/1.41,-10-\x/1.41);
\draw(-\x/1.41,-\x/1.41)--(-7.07-\x,-7.07);
\draw(-\x,0)--(-10-\x/1.41,\x/1.41);
\draw(-\x/1.41,\x/1.41)--(-7.07,7.07+\x);
}
\end{tikzpicture}
\end{center}\par
\end{document}

Tikz绘制形似万花尺的图片的更多相关文章

  1. GDI+ 如何将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...

  2. 【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用

    在上一篇文章中,我们提到了图片必须是2的n次方的问题.但是随着Libgdx的不断完善和发展,使用一些工具就 可以很好的解决了这样一个问题,但是它的功能又不仅仅只限于此,那么下面就来让我们看看Textu ...

  3. GDI+ 怎样将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码例如以下: private Image CutEllipse(Image img, Rectangle rec, Size size) ...

  4. Flex 绘制圆形并填充图片

    注意:Ellipse 绘制椭圆,当width = height 时 则绘制圆形. BitmapFill:填充图片 <s:Group id="gpimgUser" width= ...

  5. Qt自定义委托在QTableView中绘制控件、图片、文字(内容比较全)

    自定义委托,继承于,QStyledItemDelegate类,重载Paint()函数, 1.实现在QTableView中绘制 格式字符串 2.实现在QTableView中绘制进度条 3.实现在QTab ...

  6. Qt自定义委托在QTableView中绘制控件、图片、文字

    自定义委托,继承于,QStyledItemDelegate类,重载Paint()函数, 1.实现在QTableView中绘制 格式字符串 2.实现在QTableView中绘制进度条 3.实现在QTab ...

  7. 使用html5 canvas绘制图片

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  8. Android中绘制圆角矩形图片及任意形状图片

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角 ...

  9. 使用MFC CImage类绘制PNG图片时遇到的问题

    为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 ...

随机推荐

  1. Java-基础-LinkedList

    1. 简介 LinkedList 同时实现了List和Deque接口,也就是说它既可以看作是一个顺序容器,又可以看作是双向队列. 既然是双向列表,那么它的每个数据节点都一定有两个指针,分别指向它的前驱 ...

  2. Python3 TypeError: initial_value must be str or None, not bytes

    response.read() returns an instance of bytes while StringIO is an in-memory stream for text only. Us ...

  3. Zabbix5.0实现监控系统登陆失败告警

    环境zabbix5.0,配置思路,通过添加监控项和触发器实现,监控项监控对应的日志文件,触发器过滤日志文件中的关键字,当出现failed时就发出告警. 监控项配置 类型选择zabbix客户端主动式,键 ...

  4. (转)刚来的大神彻底干掉了代码中的if else...

    一旦代码中 if-else 过多,就会大大的影响其可读性和可维护性. 首先可读性,不言而喻,过多的 if-else 代码和嵌套,会使阅读代码的人很难理解到底是什么意思.尤其是那些没有注释的代码. 其次 ...

  5. Mysql教程:(六)修改语句、、删除语句、字符查询like

    1.修改语句 update 表名 set  where 条件 mysql> update student set birth=1988,department='中文系' where id=901 ...

  6. OpenHarmony LiteOS C-SKY指令集移植指北

    摘要:本文介绍在OpenHarmony社区LiteOS-M项目中新增C-SKY指令集的开发流程,以及适配相应qemu工程的方法和步骤,供LiteOS内核相关开发者学习交流. 本文分享自华为云社区< ...

  7. vue中axios的post和get请求示例

    POST请求 methods: { isclick() { if (this.account == "" || this.pwd == "") { this.$ ...

  8. mac下将python2.7改为python3

    mac下将python2.7改为python3 查看当前电脑python版本 python -V 修改.bash_profile文件 vi ~/.bash_profile //编辑bash_profi ...

  9. UE4中C++编程(一)

    一: C++工程和Gameplay框架 GameInstance 它适合放置独立于关卡的信息,比如说显示UI. GameMode 表示游戏玩法, 包含游戏进行的规则和胜利条件等等信息,游戏模式是和关卡 ...

  10. gorm框架表名自动加s问题

    查看日志会发现表名自动加了s 在model实现以下方法即可解决 type UsUser struct { ID int64 `gorm:"column:id" db:"c ...