def drawSemiCircle(pos=(0, 0), inner_radius=100, outer_radius=120, slices=32, loops=1, start_angle=0, sweep_angle=360): '''Draw a semi-circle. You can choose the start angle, and the ending angle (from 0 to 360), and the inner/outer radius ! :Parameters: `pos`: tuple, default to (0, 0) Center position of the circle `inner_radius`: int, default to 100 Radius of the inner circle `outer_radius`: int, default to 120 Radius of the outer circle `slices`: int, default to 32 Precision of circle drawing `start_angle`: int, default to 0 Angle to start drawing `sweep_angle`: int, default to 360 Angle to finish drawing ''' with gx_matrix: glTranslatef(pos[0], pos[1], 0) gluPartialDisk(gluNewQuadric(), inner_radius, outer_radius, slices, loops, start_angle, sweep_angle)
def drawStippledCircle( pos=(0, 0), inner_radius=200, outer_radius=400, segments=10): ''' Draw a stippled circle. A stippled circle consists of several equally-sized segments, with a gap between every two segments. The gap is the size of a segment. The circle's position and thickness can be specified. :Parameters: `pos`: tuple, default to (0, 0) Center position of the circle `inner_radius`: int, default to 100 Radius of the inner circle `outer_radius`: int, default to 120 Radius of the outer circle `segments`: int, defaults to 10 Number of visible segments ''' angle_delta = (360 / segments) / 2 current_angle = 0 quadric = gluNewQuadric() with gx_matrix: glTranslatef(pos[0], pos[1], 0) for i in range(segments): next_angle = current_angle + angle_delta gluPartialDisk(quadric, inner_radius, outer_radius, 32, 1, current_angle, angle_delta) # For the stipple effect, leave a part of the Disk out current_angle = next_angle + angle_delta
def drawStippledCircle(pos=(0,0), inner_radius=200, outer_radius=400, segments=10): ''' Draw a stippled circle. A stippled circle consists of several equally-sized segments, with a gap between every two segments. The gap is the size of a segment. The circle's position and thickness can be specified. :Parameters: `pos` : tuple, default to (0, 0) Center position of the circle `inner_radius` : int, default to 100 Radius of the inner circle `outer_radius` : int, default to 120 Radius of the outer circle `segments` : int, defaults to 10 Number of visible segments ''' angle_delta = (360/segments)/2 current_angle = 0 quadric = gluNewQuadric() with gx_matrix: glTranslatef(pos[0], pos[1], 0) for i in range(segments): next_angle = current_angle + angle_delta gluPartialDisk(quadric, inner_radius, outer_radius, 32, 1, current_angle, angle_delta) # For the stipple effect, leave a part of the Disk out current_angle = next_angle + angle_delta
def drawSemiCircle(pos=(0,0), inner_radius=100, outer_radius=120, slices=32, loops=1, start_angle=0, sweep_angle=360): '''Draw a semi-circle. You can choose the start angle, and the ending angle (from 0 to 360), and the inner/outer radius ! :Parameters: `pos` : tuple, default to (0, 0) Center position of the circle `inner_radius` : int, default to 100 Radius of the inner circle `outer_radius` : int, default to 120 Radius of the outer circle `slices` : int, default to 32 Precision of circle drawing `start_angle` : int, default to 0 Angle to start drawing `sweep_angle` : int, default to 360 Angle to finish drawing ''' with gx_matrix: glTranslatef(pos[0], pos[1], 0) gluPartialDisk(gluNewQuadric(), inner_radius, outer_radius, slices, loops, start_angle, sweep_angle)
def _fan_(self): ''' ''' i_r = 0 o_r = 1 glPushMatrix() glRotatef(90, 1, 0, 0) # blades=[-15,-15+45,-15+90] sweep = 30 nblades = 8 for start in [-15] * nblades: glRotatef(-360.0 / nblades, 0, 0, 1) glPushMatrix() glRotatef(25, 0 + math.cos(start), 1, 0) # glRotatef(5,math.sin(start),math.cos(start),0) gluPartialDisk(gluNewQuadric(), i_r, o_r, xseg, yseg, start, sweep ) glPopMatrix() glPopMatrix()
def draw(self): gluPartialDisk(self.quadric,0.5,1.5,32,32,0,300) #e stub - should use named options return
def draw(self): gluPartialDisk(self.quadric, 0.5, 1.5, 32, 32, 0, 300) #e stub - should use named options return