Пример #1
0
def LineTo(ser, start, end):
    penPosition = start
    steps = LineDraw.get_deltas(start[0], start[1], end[0], end[1])
    for delta in steps:
        MotorInterface.MoveDelta(ser, delta)
        penPosition[0] += delta[0]
        penPosition[1] += delta[1]
    return penPosition
Пример #2
0
def MoveTo(ser, start, end):
    penPosition = start
    MotorInterface.PenUp(ser)
    steps = LineDraw.get_deltas(start[0], start[1], end[0], end[1])
    for delta in steps:
        MotorInterface.MoveDelta(ser, delta)
        penPosition[0] += delta[0]
        penPosition[1] += delta[1]
    if ((end[0] != 0) or (end[1] != 0)):
        MotorInterface.PenDown(ser)
    return penPosition
Пример #3
0
def CurveTo(ser, start, cp1, cp2, end):
    penPosition = start
    t = 0.05
    while t < 1.01:
        currX = end[0]*(t**3) + 3*cp2[0]*((t**2)*(1-t)) + 3*cp1[0]*(t*((1-t)**2)) + start[0]*((1-t)**3)
        currY = end[1]*(t**3) + 3*cp2[1]*((t**2)*(1-t)) + 3*cp1[1]*(t*((1-t)**2)) + start[1]*((1-t)**3)
        steps = LineDraw.get_deltas(penPosition[0], penPosition[1], currX, currY)
        for delta in steps:
            MotorInterface.MoveDelta(ser, delta)
            penPosition[0] += delta[0]
            penPosition[1] += delta[1]
        t += .05
    return penPosition