首页 新闻 会员 周边 捐助

如何编程程序

0
悬赏园豆:30 [已关闭问题]

大家好,我是新来的一名学生,我现在有一问题需要个位高手的帮忙:

在一个圆上有一个小铁球,从起始位置出发,环绕一周后回来原来的位置,这道题这一种编程语言写出来,什么语言都可以,希望大家能帮帮忙了,谢谢谢谢谢谢.......

volin的主页 volin | 初学一级 | 园豆:39
提问于:2009-06-19 10:02
< >
分享
其他回答(1)
0

描述不清楚。

这个应该不是很难,提供思路。

现在界面上话一个圆形,得到圆形边的坐标的集合-》循环集合-》在循环中依次在每个点画一个图片(充当球)但是每次循环不要忘记将前一个点重绘成点。

ok 过程完毕。现在去找资料吧。应该很好找的啊

邢少 | 园豆:10926 (专家六级) | 2009-06-19 10:33
0

印象中圆的公式:x^2 + y^2 = N,如果真是这样(我现在已经忘的差不多了)

    上半圆(滑过去) y = (N - x^2)^(1/2) (x: 0 -> 2r)

    下半圆(滑回来) y = -(N-x^2)^(1/2)  (x: 2r -> 0)

在滑的过程中,步幅取决于 x 在变化的过程中的单位增加值,单位增加值越小,则圆圈越细致!

 

int r, step;//半径以及步幅

N
= (1/2)(pi)r^2;//面积?shit, 真忘记了!

for(int x = 0; x < 2r; x+= step){//上半圆

y
= (N - x^2)^(1/2);

DrawPoint(x, y);

}

for(int x = 2r ; x > 0; x-= step){//下半圆,注意,这里有一点点的错位,需要你调整边界值。x: 2r - step -> 0;

y
= -(N - x^2)^(1/2);

DrawPoint(x, y);

}

 

补充:

如果要画移动的球,而不是圆圈,那么记录一下前一步画的点,每次画现在位置的球的时候擦除前一步画的轨迹即可(所谓擦除就是用背景颜色重画一下)。

至于移动速度,取决于你的 step 步幅以及相邻绘制动作间的时间间隔。可考虑在 DrawPoint(...) 前增加 Sleep(...) 一定时间,以配合人眼的视觉暂留。

陛下 | 园豆:3938 (老鸟四级) | 2009-06-19 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册