Флэш по сути сам должен clipping делать.. но лучше и вправду сделаю трапецию.
В принципе параметры этой плоскости изменяются редко, так что можно 1 раз посчитать координаты трапеции, сделать из него Path и потом тупо drawPath с заливкой делать..
Сделал, но получилось довольно громоздко. Если кому вдруг пригодится:

Код AS3:
var command:Vector.<int>;
var coord:Vector.<Number>;
//...
//Рисуем полуплоскость
public function draw():void
{
if (visible)
{
canvas.graphics.beginFill(Color);
canvas.graphics.drawPath(command,coord);
canvas.graphics.endFill();
}
}
//Пересчёт области, изображающей полуплоскость
private function recalcPath():void
{
var w:Number;
var h:Number;
var b1:Boolean;
var b2:Boolean;
var b3:Boolean;
var b4:Boolean;
w=canvas.stage.width;
h=canvas.stage.height;
b1=(_levelx*_nx +_levely*_ny>0);
b2=((_levelx-w)*_nx +_levely*_ny>0);
b3=((_levelx-w)*_nx +(_levely-h)*_ny>0);
b4=(_levelx*_nx +(_levely-h)*_ny>0);
command=new Vector.<int>;
coord=new Vector.<Number>;
if(!(b1 || b2 || b3 || b4))
return;
command.push(GraphicsPathCommand.MOVE_TO);
if(b1 && b2 && b3 && b4)
{
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
return;
}
if(b4 && !b1 && b2)
{
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,_levely+_levelx*_ny/_nx);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_nx/_ny,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
return;
}
if(b1 && !b2 && b3)
{
trace(4);
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_ny/_nx,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
return;
}
if(b2 && !b3 && b4)
{
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+(_levely-h)*_ny/_nx,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
return;
}
if(b3 && !b4 && b1)
{
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+(_levely-h)*_ny/_nx,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,_levely+_levelx*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
return;
}
if(!b4 && b1 && !b2)
{
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_ny/_nx,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,_levely+_levelx*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
return;
}
if(!b1 && b2 && !b3)
{
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_ny/_nx,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
return;
}
if(!b2 && b3 && !b4)
{
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+(_levely-h)*_ny/_nx,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
return;
}
if(b1 && b2)
{
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,_levely+_levelx*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
return;
}
if(b2 && b3)
{
coord.push(w,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+(_levely-h)*_ny/_nx,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_ny/_nx,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,0);
return;
}
if(b3 && b4)
{
coord.push(w,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,_levely+_levelx*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,_levely+(_levelx-w)*_nx/_ny);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(w,h);
return;
}
if(b4 && b1)
{
coord.push(0,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+_levely*_ny/_nx,0);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(_levelx+(_levely-h)*_ny/_nx,h);
command.push(GraphicsPathCommand.LINE_TO);
coord.push(0,h);
return;
}
}
Я тут рассмотрел все возможные случаи, когда получаем трапецию, треугольник, 5-угольник, весь прямоугольник и ничего