Example #1
0
 def getVerticesAtFrame(self, frame, refVertexX, invertFrontAndBack):
     vertices = VertexUtils.computeVertices(self.trained, self.StepArgument,
                                            frame % 1)
     vertices = VertexUtils.translateVertices(vertices, refVertexX, 0)
     if invertFrontAndBack:
         self.invertFrontAndBack(vertices)
     return vertices
def loadData(datafile, stepfile):
	data = VertexUtils.getJsonData(datafile)
	stepWidth = VertexUtils.getJsonData(stepfile)
	
	MinStepArgument = stepWidth["minStepWidth"]
	MaxStepArgument = stepWidth["maxStepWidth"]

	Lines = data["lines"]
	Trained = data["trained"]

	return MinStepArgument, MaxStepArgument, Lines, Trained
Example #3
0
def loadData(datafile, stepfile):
    data = VertexUtils.getJsonData(datafile)
    stepWidth = VertexUtils.getJsonData(stepfile)

    MinStepArgument = stepWidth["minStepWidth"]
    MaxStepArgument = stepWidth["maxStepWidth"]

    Lines = data["lines"]
    Trained = data["trained"]

    return MinStepArgument, MaxStepArgument, Lines, Trained
	def setStepLength(self):
		indexFootFront = getVertexIndex(self.trained, "foot-front")
		indexFootBack = getVertexIndex(self.trained, "foot-back")

		vertices0 = VertexUtils.computeVertices(self.trained, self.StepArgument, 0)
		vertices1 = VertexUtils.computeVertices(self.trained, self.StepArgument, 1)

		# reference vertex is the closest to the front foot; we estimate that the next place to put such
		# vertex is near the back foot after a full step was completed (which is when the back foot becomes
		# front foot again)
		self.stepLength = vertices1[indexFootBack]["x"] - vertices0[indexFootFront]["x"]
def updateImage():
    global canvas, Lines
    global Trained, canvasSize, StepSize, AnimationPercent

    noSelection = -1
    currentImage = None
    vertices = VertexUtils.computeVertices(Trained, StepSize, AnimationPercent)
    vertices = VertexUtils.translateVertices(
        VertexUtils.scaleVertices(vertices, canvasSize / 4), canvasSize * 2.0 / 3, canvasSize * 2.0 / 3
    )

    Utils.UpdateImage(canvas, 0, 0, vertices, Lines, currentImage, noSelection, noSelection)
def updateImage():
    global canvas, Lines
    global Trained, canvasSize, StepSize, AnimationPercent

    noSelection = -1
    currentImage = None
    vertices = VertexUtils.computeVertices(Trained, StepSize, AnimationPercent)
    vertices = VertexUtils.translateVertices(
        VertexUtils.scaleVertices(vertices, canvasSize / 4),
        canvasSize * 2. / 3, canvasSize * 2. / 3)

    Utils.UpdateImage(canvas, 0, 0, vertices, Lines, currentImage, noSelection,
                      noSelection)
Example #7
0
    def setStepLength(self):
        indexFootFront = getVertexIndex(self.trained, "foot-front")
        indexFootBack = getVertexIndex(self.trained, "foot-back")

        vertices0 = VertexUtils.computeVertices(self.trained,
                                                self.StepArgument, 0)
        vertices1 = VertexUtils.computeVertices(self.trained,
                                                self.StepArgument, 1)

        # reference vertex is the closest to the front foot; we estimate that the next place to put such
        # vertex is near the back foot after a full step was completed (which is when the back foot becomes
        # front foot again)
        self.stepLength = vertices1[indexFootBack]["x"] - vertices0[
            indexFootFront]["x"]
def OpenFromFile(window, filename):
    global Lines, Trained, AnimationPercent, StepSize, minStepSize, maxStepSize

    AnimationPercent = 0

    data = VertexUtils.getJsonData(filename)
    stepWidth = VertexUtils.getJsonData("../data/results/stepWidth.json")

    minStepSize = stepWidth["minStepWidth"]
    maxStepSize = stepWidth["maxStepWidth"]
    StepSize = minStepSize

    Lines = data["lines"]
    Trained = data["trained"]

    fillEditorWindow(window)
def OpenFromFile(window, filename):
    global Lines, Trained, AnimationPercent, StepSize, minStepSize, maxStepSize

    AnimationPercent = 0

    data = VertexUtils.getJsonData(filename)
    stepWidth = VertexUtils.getJsonData("../data/results/stepWidth.json")

    minStepSize = stepWidth["minStepWidth"]
    maxStepSize = stepWidth["maxStepWidth"]
    StepSize = minStepSize

    Lines = data["lines"]
    Trained = data["trained"]

    fillEditorWindow(window)
	def getVertices(self):
		vertices = self.getVerticesAtFrame(self.currentFrame, self.refVertexX, not self.frontLeftFirst)

		frameLerpStart = 0.6 # at what frame we start interpolating
		if self.currentFrame % 1 >= frameLerpStart:
			nextVertices = self.getNextVertices(self.frontLeftFirst)

			vertices = VertexUtils.lerpVertices(vertices, nextVertices, ((self.currentFrame % 1) - frameLerpStart) / (1 - frameLerpStart))

		return vertices
Example #11
0
    def getVertices(self):
        vertices = self.getVerticesAtFrame(self.currentFrame, self.refVertexX,
                                           not self.frontLeftFirst)

        frameLerpStart = 0.6  # at what frame we start interpolating
        if self.currentFrame % 1 >= frameLerpStart:
            nextVertices = self.getNextVertices(self.frontLeftFirst)

            vertices = VertexUtils.lerpVertices(
                vertices, nextVertices,
                ((self.currentFrame % 1) - frameLerpStart) /
                (1 - frameLerpStart))

        return vertices
Example #12
0

StepArgument = 0.55
StepArgument = 1.25
width, height = 800, 300

MinStepArgument, MaxStepArgument, Lines, Trained = loadData(
    "../data/results/learned.json", "../data/results/stepWidth.json")

walker = SimpleWalker(Trained, StepArgument)
refVertexIndex = getVertexIndex(Trained, "reference-floor")

stepCount = 10
stepIncrement = 0.1

for i in range(int(math.ceil(stepCount / stepIncrement))):
    walker.moveForward(stepIncrement)
    vertices = walker.getVertices()
    vertices = VertexUtils.translateVertices(
        VertexUtils.scaleVertices(vertices, height / 4), width / 10,
        height * 2. / 3)

    im = Utils.DrawFrame(None, width, height, 0, 0, vertices, Lines, None,
                         None, refVertexIndex)
    im.save("imgs/frame" + format(i, "03") + ".jpg")

subprocess.call([
    "convert", "-delay", "5", "-loop", "0", "../img/frame*.jpg",
    "../img/animation.gif"
])
	def getVerticesAtFrame(self, frame, refVertexX, invertFrontAndBack):
		vertices = VertexUtils.computeVertices(self.trained, self.StepArgument, frame % 1)
		vertices = VertexUtils.translateVertices(vertices, refVertexX, 0)
		if invertFrontAndBack:
			self.invertFrontAndBack(vertices)
		return vertices


StepArgument = 0.55
StepArgument = 1.25
width, height = 800, 300

MinStepArgument, MaxStepArgument, Lines, Trained = loadData("../data/results/learned.json", "../data/results/stepWidth.json")

walker = SimpleWalker(Trained, StepArgument)
refVertexIndex = getVertexIndex(Trained, "reference-floor")

stepCount = 10
stepIncrement = 0.1

for i in range(int(math.ceil(stepCount / stepIncrement))):
	walker.moveForward(stepIncrement)
	vertices = walker.getVertices()
	vertices = VertexUtils.translateVertices(
		VertexUtils.scaleVertices(vertices, height / 4),
		width / 10,
		height * 2. / 3)

	im = Utils.DrawFrame(None, width, height, 0, 0, vertices, Lines, None, None, refVertexIndex)
	im.save("imgs/frame" + format(i, "03") + ".jpg")


subprocess.call(["convert", "-delay", "5", "-loop", "0", "../img/frame*.jpg", "../img/animation.gif"])