You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python turtle库绘制线性函数y=kx+d的图像

用Python turtle库绘制线性函数图像实现方案

核心需求拆解

你需要实现两个核心模块:

  • 独立的axes函数:用于绘制带刻度的平面直角坐标系
  • 线性函数绘制逻辑:读取参数k(斜率)和d(截距),在x∈[-10, 10]区间内绘制y=kx+d的图像

完整实现代码(draw_linfunc.py)

import turtle

def axes(scale=30):
    """绘制平面直角坐标系,scale为每个单位对应的像素大小"""
    axis_pen = turtle.Turtle()
    axis_pen.speed(0)
    axis_pen.hideturtle()
    
    # 绘制x轴
    axis_pen.penup()
    axis_pen.goto(-11 * scale, 0)
    axis_pen.pendown()
    axis_pen.goto(11 * scale, 0)
    # x轴箭头
    axis_pen.goto(10.5 * scale, 0.5 * scale)
    axis_pen.goto(11 * scale, 0)
    axis_pen.goto(10.5 * scale, -0.5 * scale)
    
    # 绘制y轴
    axis_pen.penup()
    axis_pen.goto(0, -11 * scale)
    axis_pen.pendown()
    axis_pen.goto(0, 11 * scale)
    # y轴箭头
    axis_pen.goto(0.5 * scale, 10.5 * scale)
    axis_pen.goto(0, 11 * scale)
    axis_pen.goto(-0.5 * scale, 10.5 * scale)
    
    # 绘制坐标轴刻度
    for i in range(-10, 11):
        if i == 0:
            continue
        # x轴刻度
        axis_pen.penup()
        axis_pen.goto(i * scale, -0.3 * scale)
        axis_pen.pendown()
        axis_pen.write(str(i), align='center', font=('Arial', 10, 'normal'))
        # y轴刻度
        axis_pen.penup()
        axis_pen.goto(-0.7 * scale, i * scale - 6)
        axis_pen.pendown()
        axis_pen.write(str(i), align='center', font=('Arial', 10, 'normal'))

if __name__ == "__main__":
    # 坐标缩放比例,调整可改变图像整体大小
    SCALE = 30
    # 绘制坐标轴
    axes(SCALE)
    
    # 读取线性函数参数
    k = float(input("请输入线性函数斜率k:\n>"))
    d = float(input("请输入线性函数截距d:\n>"))
    
    # 初始化函数绘图笔
    func_pen = turtle.Turtle()
    func_pen.color('red')
    func_pen.pensize(2)
    func_pen.speed(2)
    
    # 移动到x=-10的起始点
    func_pen.penup()
    start_x = -10
    start_y = k * start_x + d
    func_pen.goto(start_x * SCALE, start_y * SCALE)
    func_pen.pendown()
    
    # 遍历x区间绘制函数线,步长0.1保证线条平滑
    x = start_x
    while x <= 10:
        y = k * x + d
        func_pen.goto(x * SCALE, y * SCALE)
        x += 0.1
    
    func_pen.hideturtle()
    # 保持绘图窗口不自动关闭
    turtle.done()

逻辑说明

你已有的线性函数计算逻辑不需要做大改动,仅需要做两点适配:

  • 加入坐标缩放:直接用-10到10的数值作为turtle坐标会导致图像过小,乘以固定缩放系数SCALE后适配屏幕显示
  • 替换输出逻辑:把原来的print(f)替换为turtle的goto()方法,移动绘图笔连线即可完成图像绘制

运行方式

直接运行draw_linfunc.py,按照终端提示输入k和d的数值,会自动弹出turtle窗口显示坐标轴和对应的线性函数图像。

内容的提问来源于stack exchange,提问作者user16458161

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:06:05