Я считаю, что это то, что вы ищете:
<s:Group x="200" y="310">
<s:Line width="300">
<s:stroke><s:SolidColorStroke color="red"/></s:stroke>
</s:Line>
<s:Line width="300" rotation="-70">
<s:stroke><s:SolidColorStroke color="blue"/></s:stroke>
</s:Line>
</s:Group>
Важным, что вы должны помнить при вращении, является центр вращения, и в данном случае это верхний левый угол (как указал J_A_X). Поэтому мы просто обернули его в группу в вашей позиции x1, y1.
Теперь я не верю, что использовать его таким способом - именно то, что вам нужно, так как вы также просили пересечение между line2 и line3. Это требует некоторой математики, и мы также можем использовать математику, чтобы действительно вращать линии соответственно.
Я предполагаю, что line1 и line2 горизонтальны, как на вашем рисунке.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
initialize="computeStuff(70)">
<s:Line id="line1" xFrom="200" yFrom="310" xTo="400" yTo="310"><s:stroke><s:SolidColorStroke color="red"/></s:stroke></s:Line>
<s:Line id="line2" xFrom="200" yFrom="210" xTo="400" yTo="210"><s:stroke><s:SolidColorStroke color="green"/></s:stroke></s:Line>
<s:Line id="line3" xFrom="200" yFrom="310"><s:stroke><s:SolidColorStroke color="blue"/></s:stroke></s:Line>
<s:Rect id="intersection" width="5" height="5"><s:fill><s:SolidColor color="red"/></s:fill></s:Rect>
<s:HSlider id="slider" minimum="-90" maximum="90" value="70" change="computeStuff(slider.value)"/>
<fx:Script>
<![CDATA[
private function computeStuff(angle:Number):void {
var u:Number = angle/180 * Math.PI;
var len:Number = 300;
line3.xTo = line3.xFrom + len * Math.cos(u);
line3.yTo = line3.yFrom - len * Math.sin(u);
// intersection:
var d:Number = -(line3.yTo - line3.yFrom) / (line3.xTo - line3.xFrom);
intersection.x = line2.xFrom + (line3.yFrom - line2.yFrom) / d;
intersection.y = line2.yFrom;
}
]]>
</fx:Script>
</s:Application>