Last edited 11dec14 by bora2@.illinois.edu
Find this document at http://new.math.uiuc.edu/math198/bora2
Fencing Woman: Articulated Animation in VPython 2014
Math 198 Fall 2014
For the past two years, I have fenced epee as a part of the UIUC Fencing Illini.
I was a first time fencer when I began here at the university, and I am very
familiar with the importance of mastering the basics of fencing. The basics
include En Garde, Advance, Retreat, Extend, and Lunge. These positions and
moves are at the heart of fencing. En Garde is the traditional fencing stance.
To stand in En Garde, the feet are shoulders width apart, the dominant foot is
pointed forward and is perpendicular to the non-dominant foot that is pointed
to the side. The knees are slightly bent as if sitting on a stool, and the body
faces forward. Advance is how fencers move forward, and Retreat is how
fencers move backwards. Extend is extending one’s weapon into the target.
Lunge is when a fencer lunges to attack their opponent.
I am going to create a visual demonstration of the Advance Lunge. This
graphic will be created using VPython. Below are two images of me demonstrating
En Garde and Lunge.
En Garde Image
I wrote and edited my proposal for my project and began to experiment with making basic shapes in VPython. I also
continued learning how to use LaTex by using TexWins to write my proposal. These documents can be found
in the "Documentation" section below.
This week I created the basic body for my fencing woman. I started by looking at code from old Math 198
projects using the blobby man animation. Specifically, I studied Punching Man,
Workout Guy, and Bicycle Man. I was able to access the code for Workout Guy,
so I borrowed the code. From here, I began to make the code my own by first adding a weapon
to the blobby man animation. I did this by adding a bell guard and blade in the right hand.
Then, I delved into experimenting with rotations. I attempted to rotate the body
into the En Garde and Lunge position. I also learned about articulations and studied the
use of frames in VPython to hopefully animate my fencing woman in the coming
weeks. In addition to this, I recorded a video of myself performing the Advance Lunge.
My Fencing Demonstration Clip FencerMovie.
This week, I worked on creating my fencer. I began to use rotations and move my fencer into the En
Garde and Lunge positions.
I created my math seminar, which can be found in the "Documentation" section below. In my seminar,
I explain the concepts of articulations and frames. I also created a tree of my fencer's frames.
I am continuing to work on my fencer.
Fencing Woman Frames
I spent these weeks making my fencing animation. I started off by modifying the body for my fencer. I changed
from using the code for Workout Guy to the code from Punching Man. I made this change because when
I was using the code from Workout Guy, I was rotating the standing body into the En Garde position. The
problem I was encountering was that in order to get the fencer to Advance and Lunge, I had to add a second
rotation, and it began to get to complicated. Also, I was struggling with finding the angles to
rotate the arms into the correct Lunge position and the hips into the correct En Garde position. By
switching to Punching Man, I created the initial position of the body to be En Garde. Instead of rotating
a standing body into En Garde, I positioned the joints and limbs into the En Garde position. From here, I
simply had to have one rotation into the Lunge. Once I had the correct rotation, I began to work on getting
the fencer to animate from En Garde to Lunge. I accomplished this by creating a Lunge function. From here, I
used a horizontal translation as the Advance and the forward motion of the Lunge. The translation defined as an
Advance function. I then combined both motions by defining a forward function. To get my fencer to Retreat,
I did a similar process, but reversed. Once I had my fencing woman able to Advance, Lunge, and Retreat, I
worked on creating the opponent. I accomplished this by creating a second wire frame within the world frame and
coping the code for the body of my original fencer. I then rotated the torso frame of the second fencer by pi to
have it face the Advancing and Lunging fencer. I finally concluded my project by adding in a key press to start my
animation and moving the world frame to better view the animation.
Opponent and Angled World View
This week I made the final touches on my website. I added a gif animation of my project, as seen at the top of my
website. I also wrote my final documentation found in the "Documentation" section. Finally,
I created the PowerPoint for my final presentation. This is also found in the "Documentation" section.