猫史档案馆


【Python作品分享】画函数图

用户:吴建新y-yn吴建新y-yn查看:0 回复:1 评论:0 创建时间:2021-12-07T09:10:33


【作品展示】

center_image

 

【作品介绍】

函数图像的画法

 

【作品源代码】

import 常数窗体 as csct
import math  # 内置函数库
import turtle as t  # 画笔库
#******************************** 设置标题 ********************************
t.title('Python 函数图像 (定西市安定区东方红中学-2021-12-1)')
t.pensize(2)          # 画笔粗细
t.hideturtle()        # 隐藏画笔
t.screensize(1000, 1000, "white")  # 设置画布的宽、高、背景色

dwxx = 30  # 单位像素
XA = -300  # 坐标像素
xs = abs(XA)/int(csct.x1A)  # 像素点与坐标点的关系

print(csct.fxx1)
print(csct.fxx2)
print(csct.fxx3)
print(csct.fxx4)
print(csct.fxx5)
#**********************************************
def zbz(x2):
    t.color("green")      # 画笔颜色

    t.penup()             # 提笔
    t.goto(0, XA-50)      # 画Y坐标负轴
    t.pendown()           # 落笔
    t.goto(0, -XA+50)     # 画Y坐标正轴
    t.goto(2, -XA+30)     # 画Y坐标箭头
    t.goto(-2, -XA+30)    # 画Y坐标箭头
    t.goto(0, -XA+50)     # 画Y坐标箭头
    for i in range(int(XA/dwxx)-1, int(-XA/dwxx)+2):
        t.penup()             # 提笔
        t.goto(0, i*dwxx)
        t.pendown()           # 落笔
        t.goto(5, i*dwxx)

    for i in range(int(XA/dwxx)-1, int(-XA/dwxx)+2):  # Y轴坐标数值
        t.penup()             # 提笔
        t.goto(-30, i*dwxx-8)
        if i != 0:
            if csct.x1A <= 9:
               t.write(i*int(int(x1*10)/10)/10, font=("Arial", 10, "bold"))
            else:
               t.write(i*int(csct.x1A/10), font=("Arial", 10, "bold"))

    t.penup()             # 提笔
    t.goto(XA-50, 0)      # 画Y坐标负轴
    t.pendown()           # 落笔
    t.goto(-XA+50, 0)     # 画X坐标正轴
    t.goto(-XA+30, 2)     # 画X坐标箭头
    t.goto(-XA+30, -2)    # 画X坐标箭头
    t.goto(-XA+50, 0)     # 画X坐标箭头
    for i in range(int(XA/dwxx)-1, int(-XA/dwxx)+2):
        t.penup()             # 提笔
        t.goto(i*dwxx, 0)
        t.pendown()           # 落笔
        t.goto(i*dwxx, 5)

    for i in range(int(XA/dwxx)-1, int(-XA/dwxx)+2):  # X轴坐标数值
        t.penup()             # 提笔
        t.goto(i*dwxx-10, -18)
        if i != 0:
            if csct.x1A <= 9:
               t.write(i*int(int(csct.x1A*10)/10) /10, font=("Arial", 10, "bold"))
            else:
               t.write(i*int(csct.x1A/10), font=("Arial", 10, "bold"))


#****************************************************
zbz(XA)
#****************************************************
if csct.fxx1==1:
     t.color("red")        # 画笔颜色 y1=a*x*x+b*x+c   /dwxx
     n = 0
     for i in range(-int(csct.x1A), int(csct.x1A)):
         if abs(csct.a*i*i+csct.b*i+csct.c) <= abs(int(csct.x1A)):
             if n == 0:
                 t.penup()             # 提笔
                 t.goto(xs * i喵
             else:
                 t.pendown()           # 落笔
                 t.goto(xs * i, xs* (csct.a*i*i+csct.b*i+csct.c))
#****************************************************
if csct.fxx2 == 1:
     t.color("black")       # 画笔颜色 x=a*y*y+b*y+c   /dwxx
     n = 0
     for i in range(-int(csct.x1A), int(csct.x1A)):
         if abs(csct.a1*i*i+csct.b1*i+csct.c1) <= abs(int(csct.x1A)):
             if n == 0:
                 t.penup()             # 提笔
                 t.goto(xs * (csct.a1*i*i+csct.b1*i+csct.c1), xs * i)
                 n += 1
             else:
                 t.pendown()           # 落笔
                 t.goto(xs * (csct.a1*i*i+csct.b1*i+csct.c1) , xs * i)
#****************************************************
if csct.fxx3 == 1:
     t.color("blue")        # 画笔颜色 (x-a)*(x-a)+(y-b)*(y-b)=r*r   /dwxx
     t.penup()              # 提笔
     t.goto((xs * csct.a2),-(xs * csct.c2-abs(XA) * csct.b2))
     t.pendown()
     t.circle(xs * csct.c2, 360)
     t.penup()
#****************************************************
if csct.fxx4 == 1:
    t.color("black")       # 画笔颜色 x=a*y*y+b*y+c   /dwxx
    n = 0
    for i in range(-int(csct.x1A), int(csct.x1A)):
        if csct.c3*csct.c3 >= (i/csct.a3)*(i/csct.a3):
            if abs(csct.b3*math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))) <= abs(int(csct.x1A)):
                if n == 0:
                    t.penup()             # 提笔
                    t.goto(xs * i, xs * abs(csct.b3 *
                           math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))))
                    n += 1
                else:
                    t.pendown()           # 落笔
                    t.goto(xs * i, xs * abs(csct.b3 *
                           math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))))
    n = 0
    for i in range(-int(csct.x1A), int(csct.x1A)):
        if csct.c3*csct.c3 >= (i/csct.a3)*(i/csct.a3):
            if abs(csct.b3*math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))) <= abs(int(csct.x1A)):
                if n == 0:
                    t.penup()             # 提笔
                    t.goto(-xs * i, -xs * abs(csct.b3 *
                           math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))))
                    n += 1
                else:
                    t.pendown()           # 落笔
                    t.goto(-xs * i, -xs * abs(csct.b3 *
                           math.sqrt(csct.c3*csct.c3-(i/csct.a3)*(i/csct.a3))))
#****************************************************
if csct.fxx5 == 1:
    t.color("black")       # 画笔颜色 x=a*y*y+b*y+c   /dwxx
    n = 0
    for i in range(-int(csct.x1A), int(csct.x1A)):
        if csct.c4*csct.c4 >= (i/csct.b4)*(i/csct.b4):
            if abs(csct.a4*math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))) <= abs(int(csct.x1A)):
                if n == 0:
                    t.penup()             # 提笔
                    t.goto(xs * i, xs * abs(csct.a4 *
                           math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))))
                    n += 1
                else:
                    t.pendown()           # 落笔
                    t.goto(xs * i, xs * abs(csct.a4 *
                           math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))))
    n = 0
    for i in range(-int(csct.x1A), int(csct.x1A)):
        if csct.c4*csct.c4 >= (i/csct.b4)*(i/csct.b4):
            if abs(csct.a4*math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))) <= abs(int(csct.x1A)):
                if n == 0:
                    t.penup()             # 提笔
                    t.goto(-xs * i, -xs * abs(csct.a4 *
                           math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))))
                    n += 1
                else:
                    t.pendown()           # 落笔
                    t.goto(-xs * i, -xs * abs(csct.a4 *
                           math.sqrt(csct.c4*csct.c4-(i/csct.b4)*(i/csct.b4))))
#****************************************************


t.done()  # 停止画笔

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
一缕余晖一缕余晖

一缕余晖来啦!!!

点赞0


评论