Hello, could anyone run these snippets?
*TEST 1*
import pyglet
from pyglet.gl import GL_TRIANGLES
from itertools import chain

C = 0.707
def octagon (x, y, r, c, b, g):
    """ Returns a vertex list of regular octagon with center at (x, y) and 
corners
    distanced r away. Paints center and corners. Adds to batch b in group 
g. """
    i = list(chain.from_iterable( (0, x+1, x+2) for x in range(8) ) )
    i.extend( (0, 1, 8) )
    p = x, y
    p += x-r, y, x+int(-C*r), y+int( C*r), x, y+r, x+int( C*r), y+int( C*r)
    p += x+r, y, x+int( C*r), y+int(-C*r), x, y-r, x+int(-C*r), y+int(-C*r)
    return b.add_indexed(9, GL_TRIANGLES, g, i, ('v2i', p), ('c3B', c))

WIN = 900, 900, 'TEST'
CENTER = WIN[0] // 2, WIN[1] // 2
RADIUS = 100
SPEED = 0.1 # in seconds
WHITE = (255, 255, 255) # for center
RED = (255, 0, 0)       # for points

# Variables
win = pyglet.window.Window(*WIN)
batch = pyglet.graphics.Batch()

def on_step(dt):
    global batch
    batch = pyglet.graphics.Batch()
    octagon(CENTER[0], CENTER[1], RADIUS, WHITE+RED*8, batch, None)

@win.event
def on_draw():
    win.clear()
    batch.draw()

pyglet.clock.schedule_interval(on_step, SPEED)
pyglet.app.run()

*TEST 2*
import pyglet
from random import randrange
from pyglet.gl import GL_TRIANGLES
from itertools import chain

C = 0.707
def octagon (x, y, r, c, b, g):
    """ Returns a vertex list of regular octagon with center at (x, y) and 
corners
    distanced r away. Paints center and corners. Adds to batch b in group 
g. """
    i = list(chain.from_iterable( (0, x+1, x+2) for x in range(8) ) )
    i.extend( (0, 1, 8) )
    p = x, y
    p += x-r, y, x+int(-C*r), y+int( C*r), x, y+r, x+int( C*r), y+int( C*r)
    p += x+r, y, x+int( C*r), y+int(-C*r), x, y-r, x+int(-C*r), y+int(-C*r)
    return b.add_indexed(9, GL_TRIANGLES, g, i, ('v2i', p), ('c3B', c))

WIN = 900, 900, 'TEST'
RADIUS = 60
WHITE = (255, 255, 255) # for center
RED = (255, 0, 0) # for corners

win = pyglet.window.Window(*WIN)
batch = pyglet.graphics.Batch()

def on_step(dt):
    x = randrange(RADIUS, WIN[0] - RADIUS)
    y = randrange(RADIUS, WIN[1] - RADIUS)
    octagon(x, y, RADIUS, WHITE+RED*8, batch, None)

@win.event
def on_draw():
    win.clear()
    batch.draw()

pyglet.clock.schedule_interval(on_step, 1)
pyglet.app.run()

I posted this question on Stack Overflow 
<http://stackoverflow.com/questions/30306527/incorrectly-drawn-octagon-random-new-test-added>
 
too. The code seems to be correct but on the shape is incorrectly drawn. Is 
this reproducable on your machine? What causes this behaviour?

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyglet-users+unsubscr...@googlegroups.com.
To post to this group, send email to pyglet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/pyglet-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to