tkinter róża wiatrów

0

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

0

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.

0
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-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-windrose

Chociaż 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ć

3

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ć ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1