Jak się zabrać, python tkinter, do zobrazowania róży wiatrów, gdzie mamy kierunek oraz rozrzut jak w przykładzie poniżej.
https://4programmers.net/assets/15392/roza.JPG
Czemu się karzesz takim zadaniem? Czemu koniecznie Tkinter?
Rysowanie róży wiatrów:
https://windrose.readthedocs.io/en/latest/
Tu jeszcze jakiś przykład użycia w Tkinter:
https://stackoverflow.com/questions/45855788/tkinter-canvas-to-plot-windrose
Chociaż ja chcąc uzyskać jak najbardziej zbliżony efekt do swojego projektu pewnie bym to rysował od zera w Pillow.
Arthan napisał(a):
Czemu się karzesz takim zadaniem? Czemu koniecznie Tkinter?
Rysowanie róży wiatrów:
https://windrose.readthedocs.io/en/latest/Tu jeszcze jakiś przykład użycia w Tkinter:
https://stackoverflow.com/questions/45855788/tkinter-canvas-to-plot-windroseChociaż ja chcąc uzyskać jak najbardziej zbliżony efekt do swojego projektu pewnie bym to rysował od zera w Pillow.
Arthan napisał(a):
Czemu się karzesz takim zadaniem? Czemu koniecznie Tkinter?
Rysowanie róży wiatrów:
https://windrose.readthedocs.io/en/latest/Tu jeszcze jakiś przykład użycia w Tkinter:
https://stackoverflow.com/questions/45855788/tkinter-canvas-to-plot-windroseChociaż ja chcąc uzyskać jak najbardziej zbliżony efekt do swojego projektu pewnie bym to rysował od zera w Pillow.
Karze się tkinter bo początkuje w pythonie. Wiem, że są gotowe biblioteko dla róż wiatru ale nie o to mi chodzi. Mam wiatromierz i on przesyła mi co 15 sekund kierunek i prędkość wiatru. Ja chcę ładnie przedstawić w jakim kierunku wieje (średnia prędkości i kierunku z 10 min), oraz przedstawić jaki był minimalny oraz maksymalny kierunek w tym okresie. Policzyć sobie policzę ale nie wiem jak narysować
W sumie Canvas w Tkinter też spoko się wydaje ..
from tkinter import *
top = Tk()
canvas = Canvas(top, height=300, width=300)
filename = PhotoImage(file = "tlo.png")
image = canvas.create_image(150, 150, image=filename)
def draw_arc(color, a, w, h):
angle_from = a - w
angle_to = a + w
coord = 35, 35, 265, 265
arc = canvas.create_arc(coord, start=90-angle_to, extent=(angle_to-angle_from), fill=color, outline=color)
canvas.create_oval(35+h, 35+h, 265-h, 265-h,fill="#D4D0C7", outline="#D4D0C7")
draw_arc("yellow", 270, 30, 20)
draw_arc("red", 290, 4, 35)
canvas.pack()
top.mainloop()
Czyli tak .. najpierw położyłbym obraz tła, potem dorysowywał po kolei poszczególne elementy. Dla zakresów można by zmienić tę funkcję lub napisać drugą przyjmującą parametry od kąta i do kąta. Ta funkcja która jest rysuje najpierw fragment koła, a potem na niego jeszcze raz pełne koło "wymazując" środek. W każdym razie wszystko da się narysować ;)