Создайте линию волны Sin с обработкой

первый пост здесь, и, вероятно, легкий.

У меня есть код со справочного сайта Processing:

float a = 0.0;
float inc = TWO_PI/25.0;

for(int i=0; i<100; i=i+4) {
  line(i, 50, i, 50+sin(a)*40.0);
  a = a + inc;
}

http://processing.org/reference/sin_.html

Однако мне нужна линия, которая следует за кривой волны Sin, а не линии, представляющие точки вдоль кривой и заканчивающиеся на оси 0. Итак, в основном мне нужно нарисовать форму «S» с уравнением синусоидальной волны.

Может ли кто-нибудь запустить меня, как это сделать?

Заранее спасибо, -Аски


person Community    schedule 07.03.2010    source источник


Ответы (1)


Чтобы нарисовать кривую, вам нужно сохранить положение предыдущей точки.

float a = 0.0;
float inc = TWO_PI/25.0;
float prev_x = 0, prev_y = 50, x, y;

for(int i=0; i<100; i=i+4) {
  x = i;
  y = 50 + sin(a) * 40.0;
  line(prev_x, prev_y, x, y);
  prev_x = x;
  prev_y = y;
  a = a + inc;
}
person kennytm    schedule 07.03.2010
comment
Спасибо KennyTM, это работает отлично. Я вижу, как этот подход к рисованию также решит многие вопросы для меня в будущем, так что это было большой помощью. - person ; 07.03.2010