# 前言

https://blog.csdn.net/qq_44437695/article/details/104762815

# 程序源代码

``````from math import *
from tkinter import mainloop
from turtle import *

# 画出坐标轴
def axis(t):
s = Screen()
s.setworldcoordinates(-4, -4, 4, 4)
t.speed(0)
s.delay(0)
t.goto(-4, 0)
for i in range(-4, 4):
t.write(i, False, "right", ("Arial", 12, "normal"))
t.fd(1)
t.stamp()
t.write("x", False, "center", ("Arial", 20, "normal"))
t.penup()
t.goto(0, -4)
t.pendown()
t.left(90)
for i in range(-4, 4):
t.write(i, False, "right", ("Arial", 12, "normal"))
t.fd(1)
t.write("y", False, "center", ("Arial", 20, "normal"))
t.stamp()
t.penup()
t.hideturtle()

# 三角函数的sin(x)、arcsin(x)、cos(x)、arccos(x)、tan(x)、arctan(x)均可以用math库调用

# 余切函数cot(x)
def cot(x):
if tan(x) != 0:
return 1 / tan(x)
else:
exit("x取值不在定义域内！")

# 反余切函数arccot(x)
def acot(x):
if x > 0:
return atan(1 / x)
elif x < 0:
return pi + atan(1 / x)
else:
return pi / 2

# 正割函数sec(x)
def sec(x):
if cos(x) != 0:
return 1 / cos(x)
else:
exit("x取值不在定义域内！")

# 反正割函数arcsec(x)
def asec(x):
if x >= 1:
return atan(sqrt(pow(x, 2) - 1))
elif x <= -1:
return pi - atan(sqrt(pow(x, 2) - 1))
else:
exit("x取值不在定义域内！")

# 余割函数csc(x)
def csc(x):
if sin(x) != 0:
return 1 / sin(x)
else:
exit("x取值不在定义域内！")

# 反余割函数arccsc(x)
def acsc(x):
if x >= 1:
return acot(sqrt(pow(x, 2) - 1))
elif x <= -1:
return 0 - acot(sqrt(pow(x, 2) - 1))
else:
exit("x取值不在定义域内！")

# 在坐标轴上画出正弦函数sin(x)图像
def sin_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("正弦函数sin(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(3 * pi / 2, -1)
t.write("(3*π/2,-1)", False, "center", ("Arial", 15, "normal"))
t.goto(pi, 0)
t.write("(π,0)", False, "left", ("Arial", 15, "normal"))
t.goto(pi / 2, 1)
t.write("(π/2,1)", False, "center", ("Arial", 15, "normal"))
t.goto(0, 0)
t.write("(0,0)", False, "left", ("Arial", 15, "normal"))
t.goto(-pi / 2, -1)
t.write("(-π/2,-1)", False, "center", ("Arial", 15, "normal"))
t.goto(-pi, 0)
t.write("(-π,0)", False, "right", ("Arial", 15, "normal"))
t.goto(-3 * pi / 2, 1)
t.write("(-3*π/2,1)", False, "center", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-5000, 5000):
x = 0.001 * i
t.goto(x, sin(x))

# 在坐标轴上画出反正弦函数asin(x)图像
def asin_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反正弦函数asin(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(1, pi / 2)
t.write("(1,π/2)", False, "left", ("Arial", 15, "normal"))
t.goto(-1, -pi / 2)
t.write("(-1,-π/2)", False, "right", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-1000, 1000):
x = 0.001 * i
t.goto(x, asin(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(0, pi / 2)
t_line.pendown()
t_line.fd(1)
t_line.right(90)
t_line.fd(pi / 2)
t_line.penup()
t_line.goto(-1, 0)
t_line.pendown()
t_line.fd(pi / 2)
t_line.left(90)
t_line.fd(1)

# 在坐标轴上画出余弦函数cos(x)图像
def cos_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("余弦函数cos(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(3 * pi / 2, 0)
t.write("(3*π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(pi, -1)
t.write("(π,-1)", False, "left", ("Arial", 15, "normal"))
t.goto(pi / 2, 0)
t.write("(π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(0, 1)
t.write("(0,1)", False, "left", ("Arial", 15, "normal"))
t.goto(-pi / 2, 0)
t.write("(-π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(-pi, -1)
t.write("(-π,-1)", False, "right", ("Arial", 15, "normal"))
t.goto(-3 * pi / 2, 0)
t.write("(-3*π/2,0)", False, "center", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-5000, 5000):
x = 0.001 * i
t.goto(x, cos(x))

# 在坐标轴上画出反余弦函数acos(x)图像
def acos_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反余弦函数acos(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(1, 0)
t.write("(1,0)", False, "left", ("Arial", 15, "normal"))
t.goto(-1, pi)
t.write("(-1,π)", False, "right", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-1000, 1000):
x = 0.001 * i
t.goto(x, acos(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-1, 0)
t_line.pendown()
t_line.left(90)
t_line.fd(pi)
t_line.right(90)
t_line.fd(1)

# 在坐标轴上画出正切函数tan(x)图像
def tan_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("正切函数tan(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(-pi, 0)
t.write("(-π,0)", False, "right", ("Arial", 15, "normal"))
t.goto(0, 0)
t.write("(0,0)", False, "left", ("Arial", 15, "normal"))
t.goto(pi, 0)
t.write("(π,0)", False, "left", ("Arial", 15, "normal"))
t.color("black")
t.goto(-4.467, tan(-4.467))
t.pendown()
for i in range(-4467, -1817):
x = 0.001 * i
t.goto(x, tan(x))
t.penup()
t.goto(-1.325, tan(-1.325))
t.pendown()
for i in range(-1325, 1329):
x = 0.001 * i
t.goto(x, tan(x))
t.penup()
t.goto(1.817, tan(1.817))
t.pendown()
for i in range(1817, 4467):
x = 0.001 * i
t.goto(x, tan(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-pi / 2, -4)
t_line.write("渐近线x=-π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.left(90)
t_line.fd(8)
t_line.penup()
t_line.goto(pi / 2, -4)
t_line.write("渐近线x=π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)

# 在坐标轴上画出反正切函数arctan(x)图像
def atan_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反正切函数arctan(x)图像", False, "center", ("Arial", 20, "normal"))
t.goto(-5, atan(-5))
t.pendown()
for i in range(-5000, 5000):
x = 0.001 * i
t.goto(x, atan(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-5, pi / 2)
t_line.write("渐近线y=π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)
t_line.penup()
t_line.goto(-5, -pi / 2)
t_line.write("渐近线y=-π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

# 在坐标轴上画出余切函数cot(x)图像
def cot_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("余切函数cot(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(-3 * pi / 2, 0)
t.write("(-3*π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(-pi / 2, 0)
t.write("(-π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(pi / 2, 0)
t.write("(π/2,0)", False, "center", ("Arial", 15, "normal"))
t.goto(3 * pi / 2, 0)
t.write("(3*π/2,0)", False, "center", ("Arial", 15, "normal"))
t.color("black")
t.goto(-6.038, cot(-6.038))
t.pendown()
for i in range(-6038, -3388):
x = 0.001 * i
t.goto(x, cot(x))
t.penup()
t.goto(-2.896, cot(-2.896))
t.pendown()
for i in range(-2896, -246):
x = 0.001 * i
t.goto(x, cot(x))
t.penup()
t.goto(0.246, cot(0.246))
t.pendown()
for i in range(246, 2896):
x = 0.001 * i
t.goto(x, cot(x))
t.penup()
t.goto(3.388, cot(3.388))
t.pendown()
for i in range(3388, 6038):
x = 0.001 * i
t.goto(x, cot(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-pi, -4)
t_line.write("渐近线x=-π", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.left(90)
t_line.fd(8)
t_line.penup()
t_line.goto(0, -4)
t_line.write("渐近线x=0", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)
t_line.penup()
t_line.goto(pi, -4)
t_line.write("渐近线x=π", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)

# 在坐标轴上画出反余切函数arccot(x)图像
def acot_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反余切函数arccot(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(0, pi / 2)
t.write("(0,π/2)", False, "left", ("Arial", 15, "normal"))
t.color("black")
t.goto(-5, acot(-5))
t.pendown()
for i in range(-5000, 5000):
x = 0.001 * i
t.goto(x, acot(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-5, pi)
t_line.write("渐近线y=π", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)
t_line.penup()
t_line.goto(-5, 0)
t_line.write("渐近线y=0", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

# 在坐标轴上画出正割函数sec(x)图像
def sec_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("正割函数sec(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(0, 1)
t.write("(0,1)", False, "left", ("Arial", 15, "normal"))
t.goto(-pi, -1)
t.write("(-π,-1)", False, "center", ("Arial", 15, "normal"))
t.goto(pi, -1)
t.write("(π,-1)", False, "center", ("Arial", 15, "normal"))
t.color("black")
t.goto(-4.467, sec(-4.467))
t.pendown()
for i in range(-4467, -1817):
x = 0.001 * i
t.goto(x, sec(x))
t.penup()
t.goto(-1.325, sec(-1.325))
t.pendown()
for i in range(-1325, 1329):
x = 0.001 * i
t.goto(x, sec(x))
t.penup()
t.goto(1.817, sec(1.817))
t.pendown()
for i in range(1817, 4467):
x = 0.001 * i
t.goto(x, sec(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-pi / 2, -4)
t_line.write("渐近线x=-π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.left(90)
t_line.fd(8)
t_line.penup()
t_line.goto(pi / 2, -4)
t_line.write("渐近线x=π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)
t_line.right(90)
t_line.penup()
t_line.goto(-5, 1)
t_line.write("y=1", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)
t_line.penup()
t_line.goto(-5, -1)
t_line.write("y=-1", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

# 在坐标轴上画出反正割函数arcsec(x)图像
def asec_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反正割函数arcsec(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(1, 0)
t.write("(1,0)", False, "left", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(1000, 5000):
x = 0.001 * i
t.goto(x, asec(x))
t.penup()
t.color("blue")
t.goto(-1, pi)
t.write("(-1,π)", False, "right", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-1000, -5000, -1):
x = 0.001 * i
t.goto(x, asec(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-1, 0)
t_line.pendown()
t_line.left(90)
t_line.fd(pi)
t_line.right(90)
t_line.fd(1)
t_line.penup()
t_line.goto(-5, pi / 2)
t_line.write("渐近线y=π/2", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

# 在坐标轴上画出余割函数csc(x)图像
def csc_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("余割函数csc(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(-3 * pi / 2, 1)
t.write("(-3*π/2,1)", False, "left", ("Arial", 15, "normal"))
t.goto(-pi / 2, -1)
t.write("(-π/2,-1)", False, "center", ("Arial", 15, "normal"))
t.goto(pi / 2, 1)
t.write("(π/2,1)", False, "center", ("Arial", 15, "normal"))
t.goto(3 * pi / 2, -1)
t.write("(3*π/2,-1)", False, "center", ("Arial", 15, "normal"))
t.color("black")
t.goto(-6.038, csc(-6.038))
t.pendown()
for i in range(-6038, -3388):
x = 0.001 * i
t.goto(x, csc(x))
t.penup()
t.goto(-2.896, csc(-2.896))
t.pendown()
for i in range(-2896, -246):
x = 0.001 * i
t.goto(x, csc(x))
t.penup()
t.goto(0.246, csc(0.246))
t.pendown()
for i in range(246, 2896):
x = 0.001 * i
t.goto(x, csc(x))
t.penup()
t.goto(3.388, csc(3.388))
t.pendown()
for i in range(3388, 6038):
x = 0.001 * i
t.goto(x, csc(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(-pi, -4)
t_line.write("渐近线x=-π", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.left(90)
t_line.fd(8)
t_line.penup()
t_line.goto(0, -4)
t_line.write("渐近线x=0", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)
t_line.penup()
t_line.goto(pi, -4)
t_line.write("渐近线x=π", False, "left", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(8)
t_line.right(90)
t_line.penup()
t_line.goto(-5, 1)
t_line.write("y=1", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)
t_line.penup()
t_line.goto(-5, -1)
t_line.write("y=-1", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

# 在坐标轴上画出反余割函数arccsc(x)图像
def acsc_draw():
t = Turtle()
axis(t)
t.goto(-4, 4)
t.write("反余割函数arccsc(x)图像", False, "center", ("Arial", 20, "normal"))
t.color("blue")
t.goto(1, pi / 2)
t.write("(1,π/2)", False, "left", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(1000, 5000):
x = 0.001 * i
t.goto(x, acsc(x))
t.penup()
t.color("blue")
t.goto(-1, -pi / 2)
t.write("(-1,-π/2)", False, "right", ("Arial", 15, "normal"))
t.color("black")
t.pendown()
for i in range(-1000, -5000, -1):
x = 0.001 * i
t.goto(x, acsc(x))
t_line = Turtle()
t_line.hideturtle()
t_line.color("green")
t_line.speed(0)
t_line.penup()
t_line.goto(0, pi / 2)
t_line.pendown()
t_line.fd(1)
t_line.right(90)
t_line.fd(pi / 2)
t_line.right(90)
t_line.fd(2)
t_line.left(90)
t_line.fd(pi / 2)
t_line.left(90)
t_line.fd(1)
t_line.penup()
t_line.goto(-5, 0)
t_line.write("渐近线y=0", False, "right", ("Arial", 20, "normal"))
t_line.pendown()
t_line.fd(10)

if __name__ == '__main__':
sin_draw()
mainloop()

``````

# 函数图像

## arccsc(x)图像

原文作者：上轩希言
原文地址: https://blog.csdn.net/qq_44437695/article/details/104901007
本文转自网络文章，转载此文章仅为分享知识，如有侵权，请联系博主进行删除。