![](/icons/54200de.gif)
在的前
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![使用silverlight构建<img src='/icons/54200yi.gif' />个工作流设计器(十 9)-规则和活动<img src='/icons/54200de.gif' />交点<img src='/icons/54200de.gif' />平滑移动](http://www.crazycoder.cn/WebFiles/20098/56230a76-ec94-404e-a10d-7497ec5d31c5.jpeg)
这样
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200de.gif)
![](/icons/54200dou2.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![使用silverlight构建<img src='/icons/54200yi.gif' />个工作流设计器(十 9)-规则和活动<img src='/icons/54200de.gif' />交点<img src='/icons/54200de.gif' />平滑移动](http://www.crazycoder.cn/WebFiles/20098/f34bf53e-0cd9-4f11-bc7c-2e4e356760ea.jpeg)
这个功能
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou2.gif)
![](/icons/54200dou.gif)
![](/icons/54200yi.gif)
![](/icons/54200de.gif)
![](/icons/54200dou2.gif)
![使用silverlight构建<img src='/icons/54200yi.gif' />个工作流设计器(十 9)-规则和活动<img src='/icons/54200de.gif' />交点<img src='/icons/54200de.gif' />平滑移动](http://www.crazycoder.cn/WebFiles/20098/262ba85e-23c5-45a9-a705-b74d8f988e09.jpeg)
现在已知起始点坐标和终点坐表
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200de.gif)
![](/icons/54200dou2.gif)
![](/icons/54200yi.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou2.gif)
![](/icons/54200de.gif)
![](/icons/54200dou2.gif)
//起始点坐标和终点坐标的间
夹角(相对于Y轴坐标系)
double angle = Math.Abs(Math.Atan((endPo
.X - beginPo
.X) / (endPo
.Y - beginPo
.Y)) * 180.0 / Math.PI);
//活动
长和宽的间
夹角(相对于Y轴坐标系)
double angel2 =Math.Abs( Math.Atan(PictureWidth / PictureHeight) * 180.0 / Math.PI);
//半径
double radio = PictureHeight<PictureWidth?PictureHeight/2:PictureWidth/2;
(angle <= angel2)//起始点坐标在终点坐标
上方,或者下方
{
(endPo
.Y < beginPo
.Y)//在上方
{
(endPo
.X < beginPo
.X)
p.X = endPo
.X + Math.Tan(Math.PI * angle / 180.0) * radio;
![](/icons/54200else.gif)
p.X = endPo
.X - Math.Tan(Math.PI * angle / 180.0) * radio;
p.Y = endPo
.Y + PictureHeight / 2;
}
//在下方
{
(endPo
.X < beginPo
.X)
p.X = endPo
.X + Math.Tan(Math.PI * angle / 180.0) * radio;
![](/icons/54200else.gif)
p.X = endPo
.X - Math.Tan(Math.PI * angle / 180.0) * radio;
p.Y = endPo
.Y - PictureHeight / 2;
}
}
//左方或者右方
{
(endPo
.X < beginPo
.X)//在右方
{
p.X = endPo
.X + PictureWidth / 2;
(endPo
.Y < beginPo
.Y)
p.Y = endPo
.Y + Math.Tan(Math.PI * (90 - angle) / 180.0) * radio;
![](/icons/54200else.gif)
p.Y = endPo
.Y - Math.Tan(Math.PI * (90 - angle) / 180.0) * radio;
}
//在左方
{
p.X = endPo
.X - PictureWidth / 2;
(endPo
.Y < beginPo
.Y)
p.Y = endPo
.Y + Math.Tan(Math.PI * (90 - angle) / 180.0) * radio;
![](/icons/54200else.gif)
p.Y = endPo
.Y - Math.Tan(Math.PI * (90 - angle) / 180.0) * radio;
}
19.2 双击面板生成活动
这个功能也是网友
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou2.gif)
![](/icons/54200dou.gif)
![](/icons/54200yi.gif)
![](/icons/54200de.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou2.gif)
![](/icons/54200dou.gif)
![](/icons/54200dou.gif)
![](/icons/54200yi.gif)
![](/icons/54200dou.gif)
![](/icons/54200de.gif)
Activity a =
Activity((IContainer)this, ActivityType.INTERACTION);
a.ActivityName = Text.NewActivity + NextNewActivityIndex.![](/icons/54200ToString.gif)
;
Po
p = e.GetPosition(this);
a.CenterPo
=
Po
(p.X - this.Left, p.Y - this.Top);
this.AddActivity(a);
最新评论