lehrkraefte:blc:math:oxocard

Differences

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

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:math:oxocard [2019/04/04 22:16]
Ivo Blöchliger created
lehrkraefte:blc:math:oxocard [2019/04/05 10:08] (current)
Ivo Blöchliger
Line 2: Line 2:
   * [[https://www.tigerjython4kids.ch/index.php?inhalt_links=robotik/navigation.inc.php&inhalt_mitte=robotik/oxocard/sequenz.inc.php|Tutorial]]   * [[https://www.tigerjython4kids.ch/index.php?inhalt_links=robotik/navigation.inc.php&inhalt_mitte=robotik/oxocard/sequenz.inc.php|Tutorial]]
  
 +
 +
 +<code python oxocolors.py>
 +from oxocard import *
 +from random import randint
 +
 +num = 3
 +
 +points = [[randint(0,7), randint(0,7)] for i in range(num)]
 +vecs = [[0.005*randint(20,100), 0.005*randint(20,100)] for i in range(num)]
 +
 +
 +def glocke(p1,p2):
 +    d2 = (p1[0]-p2[0])**2+(p1[1]-p2[1])**2
 +    return int(255.0/(1.0+d2/5))
 +    
 +
 +enableRepaint(False)
 +while True:
 +    for i in range(8):
 +        for k in range(8):
 +            rgb = [glocke(points[c],[i,k]) for c in range(3)]
 +            dot(i, k, rgb)
 +    for c in range(num):
 +        for i in range(2):
 +            points[c][i]+=vecs[c][i]
 +            if (points[c][i]<-2 or points[c][i]>10):
 +                vecs[c][i]=-vecs[c][i]
 +                points[c][i]+=vecs[c][i]
 +        
 +    repaint()
 +</code>
 +
 +
 +<code python accelerodemo.py>
 +from oxocard import *
 +from random import randint
 +from oxoaccelerometer import *
 +
 +
 +acc = Accelerometer.create()
 +
 +num = 12
 +
 +points = [[randint(0,7), randint(0,7)] for i in range(num)]
 +colors = []
 +for i in range(num):
 +    colors.append([randint(50,255),randint(50,255),randint(50,255)])
 +    
 +grid = [[False for i in range(8)] for j in range(8)]
 +
 +for p in points:
 +    grid[p[0]][p[1]]=True
 +    
 +
 +def getDir(p):
 +    if p<1:
 +        return -1
 +    if p>2:
 +        return 1
 +    return 0
 +    
 +    
 +def onGrid(p):
 +    return p[0]>=0 and p[0]<=7 and p[1]>=0 and p[1]<=7
 +
 +def add(p,v):
 +    return [p[0]+v[0],p[1]+v[1]]
 +
 +enableRepaint(False)
 +while True:
 +    clear()
 +    pref = [acc.getX()/4.0, -acc.getY()/4.0]  # preferred direction of movement
 +    for i in range(num):
 +        p = points[i]
 +        v = [getDir(randint(0,300)/100.0+pref[k]) for k in range(2)]
 +        r = add(p,v)
 +        if onGrid(r):
 +            if grid[r[0]][r[1]]==False:
 +                grid[r[0]][r[1]]=True
 +                grid[p[0]][p[1]]=False
 +                p[0]=r[0]
 +                p[1]=r[1]
 +        dot(p[0],p[1],colors[i])
 +        
 +        
 +    repaint()
 +
 +</code>
  • lehrkraefte/blc/math/oxocard.1554408968.txt.gz
  • Last modified: 2019/04/04 22:16
  • by Ivo Blöchliger