不能直接写出函数的表达式 怎么在python里画函数图象呢?不写出y=f(x)这样的表达式,由隐函数的等式直接绘制图像,以x2+y2+xy=1的图像为例,使用sympy间接调用matplotlib工具的代码和该二次曲线图像如下(注意python里的乘幂符号是**而不是^,还有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),这几点和matlab的区别很大)
直接在命令提示行的里面运行代码的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2+y**2+x*y-1);
总结用python绘制正多边形的规律?如果能够找到规律,可以让代码变得更简单 。上述代码中其实就是调用circle()函数四次,每次传入参数不同而已 。
我们可以加入循环,循环就是重复不停地做相同的事情;再找到循环变量和画圆参数之间的规律即可 。
第一个圆的半径为50,每次按15的节奏递减,直到绘制完半径为5的圆 。这样就可以使用range()函数,传入如下参数:range(50,0,-15) 。
或者由小到大绘制,传入这样的参数也可以:range(5,51,15) 。
还可以这样:循环四次,循环变量i依次为0、1、2、3,再在绘制圆的过程中构造递减的表达式:100/2-i*15 。
分析这个表达式,当i等于0时 , 结果为50,绘制半径为50的圆;当i等于1时,结果为35,绘制半径为35的圆……正好符合题目要求的参数值 。
【扩展】思考如何绘制以坐标原点为中心的同心圆呢?
仔细观察画笔绘制圆的轨迹 , 可发现:默认小海龟从坐标原点出发,逆时针旋转一圈画圆;然后,再回到起始点 。
所以,绘制同心圆 。我们需要将画笔向下移动一定的距离 , 即改变y的坐标,x坐标保持不变为0 。参考代码如下:
循环体内,每次需要抬笔和落笔功能 。
02
案例二:绘制一个正多边形
绘制正多边形有这样一个结论:用360°去除以绘制的边数 , 即可得到旋转角度 。
比如:正三角形的旋转角度(360/3=120°)、正四边形的旋转角度(360/4=90°)、正八边形的旋转角度(360/8=45°) 。其他以此类推 。
那么,我们要绘制一个正八边形呢?
使用循环结构,循环八次 。每次前移一定距离 , 再旋转(360/边数)的角度,这里旋转的就是45°角 。参考代码如下:
有了这样的结论,其他的正多边形都可以信手拈来,小菜一碟了 。只需要稍微改几个参数即可 。
03
案例三:绘制由多种颜色组成的正螺旋线
比如,这样的图形:
这是由八种颜色组成的正八边形螺旋线结构图,颜色依次为:红(red)、绿(green)、蓝(blue)、黄(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八种 。
绘制思路:
首先,需要创建一个颜色列表list,含有八种颜色元素 。
第二,前移一定距离,这个距离值是由小到大逐级递增的过程 。
第三,旋转一定角度,可参照案例二的结论 。
最后,考虑画笔的颜色,每8次(边数)为一个周期循环颜色列表 。
参考代码如下:
其他的正螺旋线,也是如此规律 。
【扩展】如果是有一定旋转角度的螺旋线呢?比如,这样的图形:
解题思路:只需要在正螺旋线的基础上,让旋转角度多偏移1-2°即可 。修改上述案例中最后一行的代码:
python怎么画???????(??)函数图像由于无法显示空格 , 请将#替换为空格,代码如下:
from turtle import *
import turtle
import math
for i in range(-300, 300):
####x = i
####y = math.tanh(x/30) * 100
####if i == -300:
########turtle.up()
推荐阅读
- erp系统作用包括哪些,erp系统功能概述
- net文件夹名称,net文件后缀
- cpu代cpu型号是什么样子的,cpu代号含义
- 电脑时间为什么快了,电脑时间为什么快了两分钟
- 关于视频号亲密度是怎么来的的信息
- 苹果系统怎么找到u盘,苹果u盘在哪里
- 钉钉直播用什么手写软件,钉钉直播可以手写吗
- python求差函数图像 python计算极差的函数
- .net4.5安装包,net46安装