Untitled
unknown
plain_text
2 years ago
4.6 kB
7
Indexable
import turtle
# 1. دریافت معادله خط از کاربر
def get_line_equation():
"""
این تابع معادله خط را از کاربر دریافت می کند.
Returns:
a: شیب خط
b: عرض از مبدأ
"""
while True:
try:
a = float(input("شیب خط را وارد کنید: "))
b = float(input("عرض از مبدأ را وارد کنید: "))
break
except ValueError:
print("ورودی شما نامعتبر است. لطفاً عددی را وارد کنید.")
return a, b
# 2. رسم خط با استفاده از معادله
def draw_line(a, b, color="black", linewidth=1):
"""
این تابع خطی را با استفاده از معادله خط رسم می کند.
Args:
a: شیب خط
b: عرض از مبدأ
color: رنگ خط
linewidth: ضخامت خط
"""
turtle.penup()
turtle.goto(-10, a * -10 + b)
turtle.pencolor(color)
turtle.setlinewidth(linewidth)
turtle.pendown()
turtle.goto(10, a * 10 + b)
# 3. دریافت مختصات دو نقطه
def get_two_points():
"""
این تابع مختصات دو نقطه را از کاربر دریافت می کند.
Returns:
x1: مختص x نقطه اول
y1: مختص y نقطه اول
x2: مختص x نقطه دوم
y2: مختص y نقطه دوم
"""
while True:
try:
x1 = float(input("مختص x نقطه اول را وارد کنید: "))
y1 = float(input("مختص y نقطه اول را وارد کنید: "))
x2 = float(input("مختص x نقطه دوم را وارد کنید: "))
y2 = float(input("مختص y نقطه دوم را وارد کنید: "))
break
except ValueError:
print("ورودی شما نامعتبر است. لطفاً عددی را وارد کنید.")
return x1, y1, x2, y2
# 4. محاسبه معادله خط دو نقطه
def calculate_line_equation(x1, y1, x2, y2):
"""
این تابع معادله خط دو نقطه را محاسبه می کند.
Args:
x1: مختص x نقطه اول
y1: مختص y نقطه اول
x2: مختص x نقطه دوم
y2: مختص y نقطه دوم
Returns:
a: شیب خط
b: عرض از مبدأ
"""
if x1 == x2:
# خط عمودی است
a = None
b = x1
else:
a = (y2 - y1) / (x2 - x1)
b = y1 - a * x1
return a, b
# 5. نمایش توضیحات مربوط به معادله خط
def show_توضیحات():
"""
این تابع توضیحات مربوط به معادله خط را نمایش می دهد.
"""
print("معادله خط به صورت y = ax + b است.")
print("در این معادله:")
print(" * a شیب خط نامیده میشود و نشاندهنده زاویه خط با محور افقی (x) است.")
print(" * b عرض از مبدأ نامیده میشود و نشاندهنده نقطه تقاطع خط با محور عمودی (y) است.")
# 6. شروع برنامه
show_توضیحات()
# دریافت معادله خط از کاربر
a, b = get_line_equation()
# رسم خط با استفاده از معادله
draw_line(a, b)
# دریافت مختصات دو نقطه
x1, y1, x2, y2 = get_two_points()
# محاسبه معادله خط دو نقطه
a, b = calculate_line_equation(x1, y1, x2, y2)
# نمایش معادله خط دو نقطه
print("معادله خط دو نقطه ({}, {}) و ({}, {}) به صورت y = {}x + {} است.".format(x1, y1, x2, y2, a, b))
# 7. رسم خط دو نقطه
draw_line(a, b, color="red", linewidth=2)
# 8. نمایش نقاط
turtle.penup()
turtle.goto(x1, y1)
turtle.dot("red")
turtle.goto(x2, y2)
turtle.dot("red")
# 9. نمایش معادله خط در کنار خط
turtle.setposition(-10, a * -10 + b + 10)
turtle.pendown()
turtle.write("y = {}x + {}".format(a, b), font=("Arial", 12, "normal"))
# 10. انتخاب نوع خط
while True:
choice = input("نوع خط را انتخاب کنید (خط مستقیم/خط منحنی): ").lower()
if choice in ("خط مستقیم", "خط منحنی"):
break
else:
print("ورودی شما نامعتبر است.")
# 11. رسم خط بر اساس نوع انتخابی
if choice == "خط مستقیم":
# رسم خط مستقیم
draw_line(a, b)
else:
# رسم خط منحنی
# ...
# 12. نمایش توضیحات مربوط به نوع خط
if choice == "خط مستقیم":
print("خط رسم شده یک خط مستقیم است.")
else:
print("خط رسم شده یک خط منحنی است.")
# 13. پایان برنامه
turtle.done()Editor is loading...
Leave a Comment