使用python绘制任意函数图像

news/2024/10/31 3:27:24/

使用python绘制任意函数图像
##原创文章不易,望点赞转发收藏三连

效果展示

![](https://img-blog.csdnimg.cn/940596c8285348ea956b3f9cc0fb74a5.png

y = (sinx)/x
在这里插入图片描述
y = x4+x3+x^2+1
![在这里插入图片描述](https://img-blog.csdnimg.cn/5a5223f08f62412e915e3ad048789134.png
在这里插入图片描述

y=-x^2

文末还会展示一些实例图片

引入需要的库

我们使用如下库

import turtle as t
import math 

这两个库的用法也是本项目的核心
其中基本语法不再赘述
大家可以网络搜索

核心算法

我们假设像素点为坐标点,通过goto(x,y)与y,x的函数关系进行找点
通过penup().pendown()连接个点,视觉上像素点的连线几乎为曲线
当然,可以通过仅仅画点保证准确度

绘画坐标系

坐标系的绘制不是难事,就是麻烦,我已经经过尝试,给出以下数据,方便大家使用

t.screensize(800,800,"white")
t.hideturtle()
t.speed(0)
t.pendown()
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.penup()
t.goto(-10,-15)
t.write("O")
t.goto(350,-15)
t.write("x")
t.goto(-15,337)
t.write("y")

基本设置

我们再画图像之前要初始化x的位置,避免画到画布外,否则会报错
之后处理y时,也要注意这一点
另外,可以设置曲线粗细和绘画速度
粗细1–>n变粗
速度1–>10->0变快

n = int(input(r"输入需要放大的倍数:"))
x = int((-350)/n)
t.pensize(1)
t.speed(10)
while pass:pass

处理函数关系

首先两个确定:
1.确定函数解析式,要符合python语法
2.确定定义域的补集合
然后避免两点:
1.避免x的取值超出定义域,出现MATHS ERROR
2.避免y超出范围,导致ERROE
再注意两个近似:
1.可以每个点向前画一个坐标,近似于点
2.pendown()下的goto()连接点,近似于曲线
还有两个选择:
1.penup()的注释取消后,将t.penup()加入代码,可以之画点不连线
2.math库可以丰富函数类型

while x <= int((350)/n):if x!=0:                  #定义域的反域y = m.sin(x)/x        #函数解析式if y>=-350 and y<=350:t.goto(n*x,y*n)t.pendown()t.forward(1)#t.penup()x+=1

如果实在不清楚定义域或者表示起来不方便
也可以采用try-except结构自动处理

while pass:try:y = math.sin(x)/xexcept:#breakpass        ###根据需要选择,建议直接passpass

最后别忘了title库结尾的title.done()

展示源代码

import turtle as t
import math as m 
t.screensize(800,800,"white")
t.hideturtle()
t.speed(0)
t.pendown()
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.goto(0,0)
t.forward(800)
t.left(90)
t.penup()
t.goto(-10,-15)
t.write("O")
t.goto(350,-15)
t.write("x")
t.goto(-15,337)
t.write("y")n = int(input(r"输入需要放大的倍数:"))
x = int((-350)/n)
t.pensize(1)
t.speed(10)
while x <= int((350)/n):if x!=0:                  #定义域的反域y = m.sin(x)/x        #函数解析式if y>=-350 and y<=350:t.goto(n*x,y*n)t.pendown()t.forward(1)#t.penup()x+=1
t.down()

图片展示

在这里插入图片描述

双曲正弦
在这里插入图片描述

双曲余弦
在这里插入图片描述

双曲正切(原点附近)
y=sin(x^-1)
正弦
在这里插入图片描述

余弦


http://www.ppmy.cn/news/741977.html

相关文章

如何用计算机画函数图像,怎样用电脑画函数图象,或用什麽软件画

2007-10-05 怎样看函数图象 这个问题不太好说,我想应该主要看几方面吧, 一看函数图象上的点,一般函数图象都是由点构成的直线或者曲线,所以要看准这图象上的点的情况; 二看函数图象的对称性,这便于求对称点或对应点的坐标,也便于研究函数的趋势走向; 三是看函数图象处在什么位置…

用Python绘制数学函数图像

博客文章: https://blog.manchan.top/post/Drawing-mathematical-function-images-with-Python/可在此处找到我 前言 最近开始学习数学了&#xff0c;有一些题目的函数图像非常有特点&#xff0c;有一些函数图像手绘比较麻烦&#xff0c;那么有没有什么办法做出又标准又好看的…

使用python画函数图像

目的: 发出 y x ** 3 / (x * 3 1) 的图像 1. 导入matplotlib模块还有numpy模块: import numpy as np import matplotlib.pyplot as plt 2. 设置一个x的大致范围, 和y相对应的值域: x np.arange(-100, 100, 0.001) y x ** 3 / (3 * x 1)3. 使用figure创建画布, 把参数传…

python如何画函数图像

通过图像可以直观地学习函数变化、分布等规律&#xff0c;在学习函数、概率分布等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。 下面我们来实现一个简单的函数&#xff1a; 首先&#xff0c;调用matplotlib库和numpy库 import matplotlib.pyplot…

python类中常用的魔法方法和区别

python类中常用的魔法方法和区别 Python 中有许多魔法方法(magic methods),也称为双下划线方法(dunder methods),它们提供了类的特殊行为和功能,使类更加强大和灵活。以下是一些常用的、方便的魔法方法: init(self, …): 构造方法,在创建对象时进行初始化操作。 rep…

Flink流批一体计算(11):PyFlink Tabel API之TableEnvironment

目录 概述 设置重启策略 什么是flink的重启策略&#xff08;Restartstrategy&#xff09; flink的重启策略&#xff08;Restartstrategy&#xff09;实战 flink的4种重启策略 FixedDelayRestartstrategy(固定延时重启策略) FailureRateRestartstrategy(故障率重启策略) …

怎样取消连续包月自动续费_大会员怎么取消自动续费

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 以哔哩哔哩为例&#xff0c;取消大会员自动续费的方法是&#xff1a; 1、首先打开并登录“哔哩哔哩”APP。 2、然后在哔哩哔哩主界面点击左上角的“用户名头像”并进入。 3、接着在…

怎么关闭苹果手机自动扣费_优酷自动续费怎么关闭

优酷自动续费怎么关闭&#xff1f;历经几个月我终于关掉了&#xff0c;真的是普天同庆不容易。还没关掉的&#xff0c;就按照我圈起来的去操作&#xff0c;我收到短信提示关闭成功&#xff0c;下个月就不会自动扣钱啦&#xff01;对了我是苹果手机