python 画图一个平面_强基初中数学&学Python——第四十三课 海龟画图基本操作方法之八:海龟的变形...

本文介绍了Python海龟画图的变形方法,包括自动(auto)和用户(user)模式下的拉伸变形,以及剪切变形。在user模式下,通过shapesize方法调节海龟大小,而在auto模式下,系统自动根据画笔大小调整。shearfactor方法用于实现剪切变形,参数为剪切角的正切值。建议读者自行实践,测试不同形状和自定义海龟的变形效果。
摘要由CSDN通过智能技术生成

学Python——第一阶段二十课及思维导图

强基初中数学&学Python——第二阶段三十四课

强基初中数学&学Python——第三十五课 海龟画图基本操作方法之一

强基初中数学&学Python——第三十六课 海龟画图基本操作方法之二

强基初中数学&学Python——第三十七课 平面直角坐标系

强基初中数学&学Python——第三十八课 海龟画图基本操作方法之三

强基初中数学&学Python——第三十九课 海龟画图基本操作方法之四

强基初中数学&学Python——第四十课 海龟画图基本操作方法之五:填充

强基初中数学&学Python——第四十一课 海龟画图基本操作方法之六:文本操作

强基初中数学&学Python——第四十二课 海龟画图基本操作方法之七:自定义海龟

——海龟的拉伸变形——

    海龟的变形有自动(auto)、用户(user)和不变化(noresize)三种模式,使用resizemode方法设置。当无参数时返回当前的变形模式,改变就输入三种模式中的一种。不变化模式没什么好讲的,这里只讨论自动和用户模式。默认的模式一般是不变化(noresize)。

    auto海龟随着画笔大小pensize的变化而变化:

7a5e79fd7729467cb7a0da18d74889d4.png

    user模式,画笔大小pensize变化了,会怎样呢?测试一下:

1fc00f2dc9d0c7c03433ee621586e30c.png

可见,海龟并没有随画笔的大小变化而变化。原来,user模式是由用户自行通过shapesize(别名turtlesize)方法调节海龟大小。该方法依次有三个可选参数:stretch_wid 为横(垂直于海龟朝向的宽度)拉伸比例,stretch_len 为直(平行于海龟朝向的长度)拉伸比例,outline是形状轮廓线粗细。没有参数返回当前拉伸三数元组。由于shapesize专门用于user模式的,所以在调用时,如果系统发现不是user模式,就先调用resizemode("user")变更为user模式,意思就是说,resizemode("user")代码是没必要的。

076f14fe5c99e4b17b1d9146e8deb5dc.png

    auto模式也是一种拉伸变形,只不过拉伸比和轮廓线大小由系统根据画笔的大小自动决定。

——海龟的剪切变形——

    shearfactor方法用于海龟的剪切变形,参数是剪切角的正切函数值,当没有参数时,返回当前剪切角的正切函数值。

    【百度百科】在Rt△ABC(直角三角形)中,∠C=90°,AB是∠C的对边c,BC是∠A的对边a,AC是∠B的对边b,正切函数就是tanB=b/a,即tanB=AC/BC。 

4f4d9be0f442f070a9303d29b2a45d7c.png

    海龟的剪切变形实际是横线(与海龟朝向垂直)的长度和相互之间的距离不变,以海龟的朝向中点为中心进行顺时针(参数为正数)或逆时针(参数为负数)进行面积变形。自定义坐标setworldcoordinates不改变这种顺逆时针的关系。

25b1661feefcd769557ae5d604366aec.png

130b8272d627ab1430acc2316fdeafc0.png

注:math.tan为正切函数;math.radians把角度值转为弧度值。

练习:把上面的剪切变形测试输入电脑自己测试一次,更换不同的海龟形状和自定义海龟形状,测试变形情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值