Держите простой набросок рендеринга векторов. Смысл следующий: у вас есть массивы основных векторов (которые пользователем задаются) и, соответственно, массивы получившихся векторов (те, которые показывают результат операции).
При обновлении данных об основных векторах или изменении операции, собственно, когда нужно отрисовать новую картинку, вы должны очистить массив resultVectors и заполнить его данными о новых получившихся векторах. Так же и с массивом currentVectors. Ну и вызвать метод renderScene после этого.
Надеюсь примерно понятно объяснил.
Так, как я не знаю, в каком формате ты будете хранить данные о векторе, оставил пустым метод drawVector. Думаю, сами разберетесь.
Кстати для рисования стрелочек в помощь вам метод drawArrowPart. Последний параметр angle в радианах и указывает направление стрелки.

Код AS3:
var currentVectors:Array = [];
var resultVectors:Array = [];
var drawContainer:Sprite = new Sprite();
addChild(drawContainer);
drawContainer.x = drawContainer.y = 20;
var drawGraphics:Graphics = drawContainer.graphics;
var sceneSize:Rectangle = new Rectangle(0,0,300,300);
var sceneCenterPoint:Point = new Point(20,200);
function drawArrowPart(gr:Graphics,x:Number,y:Number,angle:Number = 0):void {
var subLength:Number = 10;
var subAngle:Number = 15;
var subRadAngle:Number = Math.PI - (subAngle * Math.PI / 180);
var subX:Number;
var subY:Number;
subX = x + Math.cos(angle - subRadAngle) * subLength;
subY = y + Math.sin(angle - subRadAngle) * subLength;
gr.moveTo(x,y);
gr.lineTo(subX,subY);
subX = x + Math.cos(angle + subRadAngle) * subLength;
subY = y + Math.sin(angle + subRadAngle) * subLength;
gr.moveTo(x,y);
gr.lineTo(subX,subY);
}
function drawVector(gr:Graphics, vector:*, color:uint) {
// Here we need to draw vector
}
function renderScene():void {
drawGraphics.clear();
// draw axis
drawGraphics.lineStyle(1,0x0000000, 0.25);
drawGraphics.drawRect(sceneSize.left, sceneSize.top, sceneSize.width, sceneSize.height );
drawGraphics.lineStyle(1,0x0000000,1);
// x
drawGraphics.moveTo(sceneSize.left, sceneCenterPoint.y);
drawGraphics.lineTo(sceneSize.right, sceneCenterPoint.y);
drawArrowPart(drawGraphics, sceneSize.right, sceneCenterPoint.y, 0);
// y
drawGraphics.moveTo(sceneSize.left + sceneCenterPoint.x, sceneSize.bottom);
drawGraphics.lineTo(sceneSize.left + sceneCenterPoint.x, sceneSize.top);
drawArrowPart(drawGraphics, sceneSize.left + sceneCenterPoint.x, sceneSize.top, -Math.PI / 2);
// now render current vectors;
var k:int;
for (k = 0; k < currentVectors.length; k++) {
drawVector(drawGraphics, currentVectors[k], 0xFF0000);
}
for (k = 0; k < resultVectors.length; k++) {
drawVector(drawGraphics, resultVectors[k], 0x30A4AE);
}
}
renderScene();