回复:做圆周运动

有谁共鸣

  • 帖子

    2153
  • 精华

    21
  • 被关注

    6

论坛等级:侠圣

注册时间:2005-05-07

普通 普通 如何晋级?

发布于 2006-09-06 11:52:25

0楼

给个更具体的思路算法:
比如:
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):

点击此处查看附件
雄关漫道真如铁,而今迈步从头越!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32974条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。