コード例 #1
0
ファイル: Arc.py プロジェクト: doubleZ0108/Computer-Graphics
def drawArc_Basic(grid, R):
    x, y = 0, R
    while x < y:
        drawPixel_symmetry8(x, int(y + 0.5), 1, grid)

        x += 1
        y = sqrt(R**2 - x**2)
コード例 #2
0
ファイル: Arc.py プロジェクト: doubleZ0108/Computer-Graphics
def drawArc_InscribedRegularPolygonApproximate(grid, R):
    Alpha = 1 / R
    cosAlpha, sinAlpha = cos(Alpha), sin(Alpha)

    x, y = R, 0
    while x >= y:
        drawPixel_symmetry8(int(x + 0.5), int(y + 0.5), 1, grid)

        x = cosAlpha * x - sinAlpha * y
        y = sinAlpha * x + cosAlpha * y
コード例 #3
0
ファイル: Arc.py プロジェクト: doubleZ0108/Computer-Graphics
def drawArc_PositiveNegative(grid, R):
    F = 0

    x, y = 0, R
    while x <= y:
        drawPixel_symmetry8(x, y, 1, grid)
        print(F)
        if F <= 0:
            F += (x << 1) + 1
            x += 1
        else:
            F += 1 - (y << 1)
            y -= 1
コード例 #4
0
ファイル: Arc.py プロジェクト: doubleZ0108/Computer-Graphics
def drawArc_MidPoint_with_DDA(grid, R):
    d = 1 - R

    x, y = 0, R
    while x <= y:
        drawPixel_symmetry8(x, y, 1, grid)

        if d < 0:
            x += 1
            d += 2 * x + 3
        else:
            x += 1
            y -= 1
            d += ((x - y) << 1) + 5
コード例 #5
0
ファイル: Arc.py プロジェクト: doubleZ0108/Computer-Graphics
def drawArc_MidPoint_with_DDA_nonreal(grid, R):
    d = 1 - R
    deltax, deltay = 3, 2 - (R << 1)

    x, y = 0, R
    while x <= y:
        drawPixel_symmetry8(x, y, 1, grid)

        if d < 0:
            x += 1
            d += deltax
            deltax += 2
        else:
            x += 1
            y -= 1
            d += (deltax + deltay)
            deltax += 2
            deltay += 2
コード例 #6
0
def drawArc_MidPoint_with_DDA_nonreal(grid, R, linetype):
    d = 1 - R
    deltax, deltay = 3, 2 - (R << 1)
    counter = 0

    x, y = 0, R
    while x <= y:

        if linetype[counter % len(linetype)]:
            drawPixel_symmetry8(x, y, 1, grid)

        if d < 0:
            x += 1
            d += deltax
            deltax += 2
        else:
            x += 1
            y -= 1
            d += (deltax + deltay)
            deltax += 2
            deltay += 2

        counter += 1