Seite 1 von 1
Kreis in einem Mosaik färben
Verfasst: Dienstag 26. April 2011, 22:09
von Toad
Hallo liebe Forenmitglieder ich verzweifel gerade etwas an einer Aufgabe die ich habe.
Ich habe mit tkinter und canvas ein Mosaik das gezeichnet wird am Ende.
Anfangsaufspannung:
Code: Alles auswählen
for row in range(s):
for col in range(s):
# calculates the coordinates of the current stone
x1 = stone_size * row
y1 = stone_size * col
x2 = x1 + stone_size
y2 = y1 + stone_size
# gets the color of the current stone
color = decide_color(row, col, s)
# paints the current stone on the given position
graphic.create_rectangle(x1, y1, x2, y2, fill = color, outline="")
Innerhalb dieses Mosaiks will ich nun einen Kreis färben mir fehlt allerdings jegliche Idee, wie wenn zB. nur Teile eines Steins betroffen sind, diesen nur teilweise einzufärben.
(Ich möchte keinen Code da ich es ja lernen möchte, ich hoffe nur auf einen kleinen Tipp, da ich schon vieles nachgeschaut hab aber noch nichts gefunden habe das mich weiterbringt)
MfG
ToaD
Re: Kreis in einem Mosaik färben
Verfasst: Dienstag 26. April 2011, 22:13
von Hyperion
Gegenfrage: Was ist denn ein "Stein"? Denk mal darüber nach
Und für das, was einen Stein ausmacht, wird es etwas analoges auch für Kreise geben - denke ich mal. (Unter pygame gibt es
das jedenfalls)
Edit: Oder meinst Du eher so was?
Also dass die Zwischenräume nicht eingefärbt werden?
Re: Kreis in einem Mosaik färben
Verfasst: Dienstag 26. April 2011, 22:17
von Toad
Ein Stein setzt sich hierbei aus der Postionsbestimmung durch Spalte und Reihe zusammen. und besteht aus 4 Punkten, soweit ist mir das klar aber irgendwie krieg ich es nicht abstrahiert
Re: Kreis in einem Mosaik färben
Verfasst: Dienstag 26. April 2011, 23:32
von HerrHagen
Wenn ich recht verstehe geht es dir eigentlich nur um folgende Funktion:
Im Grunde ist die Sache recht einfach. Du musst entscheiden ob der Stein innerhalb des Kreises liegt oder nicht. Anders formuliert: liegt der Stein innerhalb oder außerhalb, des Radius des Kreises. Oder noch anders formuliert: Hat die Position des aktuellen Steines eine größere Distanz zum Mittelpunkt des Kreis als der Radius des Kreises, dann liegt er außerhalb. Ansonsten gehört er zum Kreis. Ich hoffe das hilft.
MFG HerrHagen
Re: Kreis in einem Mosaik färben
Verfasst: Dienstag 26. April 2011, 23:39
von BlackJack
@Toad: Wie HerrHagen schon sagte ist dieser Code für Dich im Grunde gar nicht wirklich interessant. Eben so wenig wie die Annahme Steine könnten nur teilweise betroffen sein. Es sei denn Du willst Antialiasing implementieren.
Re: Kreis in einem Mosaik färben
Verfasst: Mittwoch 27. April 2011, 09:36
von EyDu
Hat jemand "japanische Flagge" gesagt? ^^
Re: Kreis in einem Mosaik färben
Verfasst: Mittwoch 27. April 2011, 12:05
von Leonidas
Japnanische Flagge sagst du? Eigentlich müssts davon ne Re-Edition geben, mit neuen Programmiersprachen.
Re: Kreis in einem Mosaik färben
Verfasst: Mittwoch 27. April 2011, 17:10
von BlackJack
Bis jetzt gibt es dort Lösungen in OCaml, Python, x86-Assembler für Linux und für DOS, Elisp, Scheme, und Io. Sind also noch einige Sprachen "frei".
Re: Kreis in einem Mosaik färben
Verfasst: Donnerstag 28. April 2011, 12:25
von Toad
Habs noch an dem Abend selbst gelöst bekommen:
Code: Alles auswählen
def decide_color_japan(x, y, size):
Mx = size/2
My = size/2
radius = 50
length = sqrt((Mx-x)*(Mx-x)+(My-y)*(My-y))
if (length<radius):
return "red"
return "white"
Ist einfach der Punktvergleich ob im Kreis oder nicht
Re: Kreis in einem Mosaik färben
Verfasst: Donnerstag 28. April 2011, 12:32
von Xynon1
Dann solltest du aber nochmal drüber sehen, bei mir ist deine Fahne komplett rot.
Genauer gesagt *ist* die Fahne ein roter Kreis.
Re: Kreis in einem Mosaik färben
Verfasst: Donnerstag 28. April 2011, 13:32
von BlackJack
@Toad: Die feste 50 ist zumindest unschön. Ich würde den Radius auch in Abhängigkeit von `size` ausdrücken. Wenn man mit der Funktion zum Beispiel ein 32×32 Pixel grosses Icon berechnen lassen will, ist die 50 deutlich zu gross.