Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kurse:ef05a-2021:kurven:xmastree [2021/11/15 07:24] Ivo Blöchliger [Christbaumbeleuchtung] |
kurse:ef05a-2021:kurven:xmastree [2021/11/29 07:48] (current) Ivo Blöchliger |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Christbaumbeleuchtung ====== | ====== Christbaumbeleuchtung ====== | ||
- | Zur Zeit befinden sich 200 LEDs auf dem Baum, die einzeln adressiert werden können (und theoretisch je 65k Farben darstellen können). Die LEDs befinden sich an folgenden Positionen (aktualisiert am 12.11., sollten jetzt ziemlich genau sein): | + | Zur Zeit befinden sich <del>200</ |
- | <hidden Positionen der LEDs> | + | |
- | <code python> | + | {{kurse: |
- | leds = [[-32.3, 29.4, 46.5], [-36.9, 21.1, 55.7], [-36.9, 21.7, 56.6], [-35.3, 26.0, 63.3], [-34.0, 13.6, 68.4], [-31.9, 23.2, 74.5], [-34.1, 16.6, 81.1], [-28.9, 20.7, 92.4], [-30.6, 2.4, 84.3], [-31.9, 22.2, 87.8], [-31.9, 23.2, 94.9], [-32.3, 11.3, 96.6], [-31.9, 21.7, 106.0], [-27.6, 13.6, 109.6], [-31.2, 16.9, 119.7], [-25.3, 13.9, 123.0], [-27.3, 11.9, 131.7], [-19.8, 12.0, 135.5], [-22.9, 20.2, 141.7], [-16.5, 10.3, 146.0], [-18.6, 9.6, 156.1], [-12.3, 4.2, 158.4], [-11.4, 7.5, 166.9], [-12.4, 1.7, 173.6], [-3.0, 0.4, 177.3], [1.9, 0.4, 172.9], [7.4, 2.2, 175.4], [7.1, 6.2, 170.8], [8.5, 1.4, 159.8], [11.6, 6.9, 157.2], [15.0, -3.0, 150.2], [13.4, 5.2, 143.9], [22.7, 2.2, 137.9], [14.7, 3.5, 133.2], [18.7, 1.6, 127.3], [19.9, -0.6, 117.6], [28.0, 4.2, 115.7], [22.9, -2.5, 107.1], [26.3, 2.6, 102.0], [28.8, -0.2, 93.7], [39.7, 1.2, 88.4], [32.9, -2.5, 83.3], [42.9, 2.2, 78.7], [38.3, -5.2, 74.8], [32.7, -0.5, 66.6], [40.1, -6.4, 61.1], [40.9, -5.9, 52.7], [38.2, -6.4, 44.9], [36.0, -8.7, 42.7], [29.8, -9.5, 35.2], [28.0, -18.2, 37.9], [28.1, -21.9, 37.9], [19.2, -27.6, 43.0], [17.6, -25.6, 51.7], [25.4, -30.9, 58.7], [20.2, -26.0, 65.8], [19.5, -26.3, 66.6], [23.2, -31.1, 76.2], [22.0, -34.1, 84.2], [20.0, -33.4, 90.6], [14.0, -26.6, 95.1], [11.1, -22.6, 102.1], [8.6, -23.2, 107.4], [10.4, -27.8, 112.7], [7.4, -18.6, 121.8], [4.4, -20.9, 129.3], [4.4, -21.9, 132.1], [-0.7, -13.7, 142.6], [3.7, -13.7, 145.7], [-2.5, -10.7, 153.0], [3.0, -14.5, 159.5], [3.3, -5.4, 164.7], [-1.6, -5.2, 170.8], [-2.0, -6.7, 180.3], [2.1, 2.9, 177.5], [-6.4, 5.3, 173.0], [-12.6, 10.2, 166.2], [-12.0, 10.0, 167.3], [-8.9, 14.5, 161.1], [-16.2, 13.6, 153.2], [-13.3, 13.9, 146.8], [-12.9, 21.2, 141.1], [-18.5, 18.5, 132.3], [-16.9, 19.7, 128.5], [-21.7, 21.8, 122.1], [-18.6, 24.9, 115.3], [-25.1, 29.9, 111.4], [-20.2, 35.7, 103.1], [-19.0, 32.9, 97.7], [-25.1, 31.7, 90.6], [-23.3, 30.4, 83.7], [-19.4, 38.1, 80.6], [-21.6, 30.9, 71.3], [-17.1, 38.4, 66.3], [-14.0, 29.8, 58.7], [-19.5, 36.0, 55.9], [-10.7, 32.6, 48.2], [-19.5, 30.9, 43.1], [-14.0, 38.0, 38.1], [-10.0, 30.5, 33.3], [4.1, 35.9, 39.9], [-2.7, 42.1, 42.9], [4.6, 48.4, 49.7], [3.0, 47.6, 51.3], [1.5, 43.6, 60.9], [5.2, 48.6, 66.7], [2.6, 39.7, 71.2], [-3.2, 41.9, 72.9], [3.7, 36.4, 79.7], [-1.2, 39.8, 84.7], [4.5, 35.9, 91.2], [0.0, 38.5, 100.5], [-1.6, 29.6, 105.4], [5.5, 32.8, 110.5], [5.0, 28.5, 115.5], [2.4, 23.5, 122.3], [-4.5, 23.9, 129.5], [-0.1, 19.9, 132.9], [-6.1, 22.2, 139.8], [-0.9, 20.1, 142.6], [-6.7, 18.3, 151.5], [2.1, 15.5, 156.3], [-4.7, 16.4, 165.6], [-6.6, 12.4, 168.4], [1.6, 7.9, 170.2], [0.7, 8.0, 179.8], [4.6, 2.0, 176.1], [4.7, -11.2, 176.5], [4.3, -9.3, 166.2], [11.1, -5.0, 162.3], [11.1, -5.7, 154.7], [15.2, -14.2, 151.6], [12.4, -10.8, 144.4], [21.4, -9.0, 145.9], [19.8, -14.4, 134.1], [24.1, -14.2, 126.9], [26.4, -14.2, 117.4], [28.4, -14.8, 115.0], [30.4, -14.7, 109.9], [31.0, -10.0, 100.1], [28.7, -15.6, 92.6], [35.3, -12.6, 90.7], [35.4, -11.5, 84.2], [28.4, -16.5, 77.4], [29.0, -17.0, 71.3], [31.7, -18.2, 60.4], [30.4, -16.3, 60.4], [33.4, -12.3, 50.1], [32.9, -4.2, 46.3], [27.4, -1.8, 43.9], [27.7, 8.4, 45.8], [25.3, 5.7, 44.7], [27.8, 10.2, 43.7], [32.1, 20.7, 49.0], [34.4, 21.8, 54.4], [29.6, 21.7, 58.5], [33.9, 19.0, 66.1], [28.5, 17.8, 75.3], [26.9, 24.7, 86.2], [25.3, 17.7, 84.8], [23.8, 16.6, 91.5], [27.5, 18.3, 96.6], [16.8, 16.5, 107.6], [21.4, 12.4, 110.4], [16.9, 17.5, 120.0], [16.7, 12.2, 122.8], [16.3, 9.9, 129.4], [10.2, 8.3, 137.6], [9.4, 13.7, 143.4], [12.5, 9.0, 147.1], [7.7, 7.3, 154.6], [4.7, 8.3, 164.9], [4.1, 8.7, 166.4], [-4.1, 2.3, 176.0], [1.4, -2.5, 181.0], [-6.7, -0.3, 184.2], [-2.5, 5.2, 181.5], [1.0, 11.0, 175.0], [4.7, 9.7, 171.2], [0.6, 15.6, 159.2], [2.6, 15.4, 154.8], [8.8, 21.0, 150.9], [5.2, 18.1, 140.2], [6.7, 26.1, 137.8], [11.0, 24.2, 130.8], [6.4, 21.2, 123.2], [9.7, 20.2, 114.4], [9.4, 21.7, 110.5], [10.3, 22.6, 103.9], [11.9, 31.6, 96.5], [11.3, 27.2, 88.9], [15.3, 26.6, 85.8], [10.5, 29.7, 80.6], [15.3, 29.3, 73.1], [14.1, 35.2, 64.0], [15.4, 30.7, 61.6], [14.6, 29.9, 54.2], [7.4, 36.1, 49.1], [13.3, 31.6, 41.4], [11.2, 33.7, 37.8]] | + | |
- | </ | + | |
- | </ | + | |
Der Nullpunkt des Koordinatensystems befindet sich am Boden mittig unter dem Stamm, die $z$-Achse nach oben). | Der Nullpunkt des Koordinatensystems befindet sich am Boden mittig unter dem Stamm, die $z$-Achse nach oben). | ||
+ | |||
+ | [[kurse: | ||
===== Darstellung der 3-dimensionalen Punkte ===== | ===== Darstellung der 3-dimensionalen Punkte ===== | ||
Line 33: | Line 32: | ||
+ | |||
+ | ===== Farben ===== | ||
+ | |||
+ | <code python hsvtorgb.py> | ||
+ | # from https:// | ||
+ | # Input: Dezimalzahlen zwischen 0.0 und 1.0 | ||
+ | # Output: Dezimalzahlen zwischen 0.0 und 1.0 | ||
+ | def hsv_to_rgb(h, | ||
+ | if s == 0.0: return (v, v, v) | ||
+ | i = int(h*6.) # XXX assume int() truncates! | ||
+ | f = (h*6.)-i; p,q,t = v*(1.-s), v*(1.-s*f), v*(1.-s*(1.-f)); | ||
+ | if i == 0: return (v, t, p) | ||
+ | if i == 1: return (q, v, p) | ||
+ | if i == 2: return (p, v, t) | ||
+ | if i == 3: return (p, q, v) | ||
+ | if i == 4: return (t, p, v) | ||
+ | if i == 5: return (v, p, q) | ||
+ | </ | ||
+ | |||
+ | In TigerJython | ||
+ | <code python> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | {{kurse: | ||
+ | ===== Animation ===== | ||
+ | Programmieren Sie eine Funktion '' | ||
+ | |||
+ | Neuerungen im Code: | ||
+ | * Positionen sind in der Datei posdata.py gespeichert und werden mit import in den Code eingebunden. | ||
+ | * Code zur Umwandlung hsv->rgb eingebunden | ||
+ | * Zeitmessung (import time) | ||
+ | * Funktion, die die Farbe setzt | ||
+ | |||
+ | Aktueller Code: {{kurse: | ||
+ | |||
+ | Aktueller C++ Code vom «echten» Christbaum: https:// |