kurse:ef05a-2021:kurven:xmastree

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:ef05a-2021:kurven:xmastree [2021/11/18 08:59]
Ivo Blöchliger [Darstellung der 3-dimensionalen Punkte]
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</del> 500 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 23.11.): 
-<hidden Positionen der LEDs> + 
-<code python> +{{kurse:ef05a-2021:kurven:posdata.py}}
-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]] +
-</code> +
-</hidden>+
  
 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:ef05a-2021:kurven:xmastree-math|Mehr zur Mathematik hinter dem Baum]].
  
 ===== Darstellung der 3-dimensionalen Punkte ===== ===== Darstellung der 3-dimensionalen Punkte =====
Line 38: Line 37:
 <code python hsvtorgb.py> <code python hsvtorgb.py>
 # from https://stackoverflow.com/questions/24852345/hsv-to-rgb-color-conversion # from https://stackoverflow.com/questions/24852345/hsv-to-rgb-color-conversion
 +# Input: Dezimalzahlen zwischen 0.0 und 1.0
 +# Output: Dezimalzahlen zwischen 0.0 und 1.0
 def hsv_to_rgb(h, s, v): def hsv_to_rgb(h, s, v):
         if s == 0.0: return (v, v, v)         if s == 0.0: return (v, v, v)
Line 52: Line 53:
 In TigerJython In TigerJython
 <code python> <code python>
-   setColor(r,g,b)  # Achtung, r,g,b müssen ganzzahlen sein (z.B. setColor(int(r), int(g), int(b))+   setColor(r,g,b)  # Achtung, r,g,b müssen Ganzzahlen von 0-255 sein (z.B. setColor(int(r), int(g), int(b))
 </code> </code>
 +
 +{{kurse:ef05a-2021:kurven:img_20211118_090128261.jpg}}
 +===== Animation =====
 +Programmieren Sie eine Funktion ''farbe(t,v)'', wobei $t$ die Zeit in Sekunden und $v$ die Position einer LED ist. Die Funktion berechnet dazu die Farbe, die dann auf dem Baum dargestellt werden soll.
 +
 +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:ef05a-2021:kurven:vector-class.zip}}
 +
 +Aktueller C++ Code vom «echten» Christbaum: https://github.com/techlabksbg/xmastree
  • kurse/ef05a-2021/kurven/xmastree.1637222362.txt.gz
  • Last modified: 2021/11/18 08:59
  • by Ivo Blöchliger