Author's photo
Zmazaný účet
informatika - sš

Informatika - Python

Dobrý deň, pomohol by mi niekto napísať program, ktorý zistí, či zadaný bod leží na priamke danej rovnicou y= ax + b a vykreslí priamku a zadaný bod v Pythone.
Poprosím do komentárov.

1 odpoveď
Ahoj,

to, či bod leží na priamke, zistíme podľa pravdivosti výrazu y == a*x + b (stačí ku každej premennej priradiť hodnotu):

if y == a*x + b:
print("Bod leží na priamke.")
else:
print("Bod neleží na priamke.")

Pri vykreslovaní máme viac možností, môžeme použiť napríklad tkinter:

from tkinter import Tk, Canvas, Label
window = Tk()
label = Label(window, text="Znázornenie grafu lineárnej funkcie")
canvas = Canvas(window, height=500, width=500)

# Osi grafu
canvas.create_line(0, 250, 500, 250, fill="blue")
canvas.create_line(250, 0, 250, 500, fill="blue")

# Priamka
line_x1 = -250
line_x2 = 250
line_y1 = -a*line_x1 - b
line_y2 = -a*line_x2 - b
canvas.create_line(line_x1+250, line_y1+250, line_x2+250, line_y2+250, fill="red")

# Bod
canvas.create_oval(x+245, 245-y, x+255, 255-y, fill="black")

label.pack()
canvas.pack()
window.mainloop()

Toto riešenie je ale trochu zložitejšie, na kreslenie grafov sú v pythone aj oveľa lepšie možnosti. Odporúčam použiť napríklad knižnicu matplotlib, s ktorou vieme vytvoriť pekný graf pár riadkami kódu:

from matplotlib import pyplot
from numpy import linspace

x_points = linspace(-100, 100, 200)
y_points = a*x_points + b

pyplot.plot(x_points, y_points, "-r", label="y = ax + b")
pyplot.plot(x, y, "ro")
pyplot.title("Znázornenie grafu lineárnej funkcie")
pyplot.xlabel("x")
pyplot.ylabel("y")
pyplot.legend(loc="upper left")
pyplot.grid()
pyplot.show()

Celý kód je tu: https://gist.github.com/VectorSVK/91c3b79c93e558fd64cee0796087d331
Komentáre:
Zmazaný účet
Ďakujem veľmi za pomoc :)