【发布时间】:2014-04-24 10:04:55
【问题描述】:
这只是为了好玩。
我想知道得到每个点在其相应圆圈中旋转的角度的公式。
这些是我给定的值:
- 行数
- 列数
- 他们的圆半径(通用)
这就是我想要实现的画面:
我假设每个点的旋转速度是均匀的
更新:
哎呀!感谢您的所有回答。不过,我也设法自己制作,但模式不同:
通过仅在构造函数端执行逻辑:
CircleWithDots() : timer(clock()), angle(angle_counter = (angle_counter >= REVOLUTION - 1) ? 0 : angle_counter + ANGLE_STEP) { }
地点:
REVOLUTION = 360 + 1;
ANGLE_STEP = 20;
还有这个(用于旋转点):
x = table_cos[angle] * radius;
y = -table_sin[angle] * radius;
【问题讨论】:
-
它认为角度本身可以通过2个
sin(或sin和cos)函数的组合获得,每个函数的输入都是行和列 -
@thumbmunkeys 我只是通过截屏(不动)想出了一个想法,随着行和列的增加,角度只是
x比前一个角度大。嗯 -
我认为如果你只添加
x,你最终会得到锯齿形图案而不是平滑曲线 -
尝试使用
sin,其中输入只是行(归一化为 [0,1] 范围),我想你最终会得到一个水平波 -
它们对角对齐,所以像
(xpos-ypos)*scale_factor这样的东西就足够了。
标签: language-agnostic waveform