给个更具体的思路算法:
比如:
1,定义个圆的圆心在(400,400),半径为200个像素,定义的函数为(x,y)。
2,以x做驱动变量,设x在[200,600]的范围内不停的加一动作(x++)当x=600又回到x=200处再做加一动作(x++),在x做加一(x++)的动作的同时计算y的位置。
3,计算y的位置——通过(x-400)的平方+(y-400)的平方之和再开方的结果=200反过来求出y的值。
4,再把x,y和内部变量绑定,循环改变和x绑定的变量。
接着是给出我做的半圆运动的参考代码:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
float x1,y1;
x1=200;
y1=400;
for (x1=200;x1<=600;x1=(float) (x1+0.05))
{
SetTagFloat("XTag",x1);
if ( x1<=600)
{
y1=(float) (400-sqrt((40000-pow((x1-400),2))));
}
SetTagFloat("YTag",y1);
}
}
给出半圆运动的例子(wincc v6.0sp1版本的,其他版本的把PDL画面文件拷贝过去再建立两个内部变量XTag、YTag):
点击此处查看附件