2016-10-28 5 views
-1

Это обычный вопрос/запрос, но я пытаюсь создать большой круг, состоящий из меньших кругов, составляющих границу. Большим кругом x и y будет мышь.Создание расширяющегося круга, состоящего из меньших кругов

Дело в том, что эти круги рисуют один за другим, а когда тета достигает 2 * PI, произойдет несколько вещей. Круги очистятся, гипотенуза будет расти, а также размер размера кругов (пропорционально), а затем начнет рисовать круги снова, начиная с 0. Первые несколько секунд этого видео демонстрируют процесс https://www.youtube.com/watch?v=hAVH-2ven94&feature=youtu.be

Для код это то, что я до сих пор:

float theta = 0; 
float hypotenuse = 30; 
float radius = 10; 
float thetaIncrease = 0.3; 
float hypotenuseIncrease = 0.5; 
float radiusIncrease = 0.2; 

void draw(){ 

    background(0); 

    float x = cos(theta)*hypotenus; 

    float y = sin(theta)*hypotenus; 

    ellipse(mouseX+x, mouseY+y, radius, radius); 

    theta += thetaIncrease; 

    if(theta >= PI*2) { 

     background(0); 

     hypotenuse += hypotenuseIncrease; 

     radius += radiusIncrease; 

     theta = 0; 

    } 

} 

проблема у меня, когда я устанавливаю тета автоматически увеличивается на 0,3 круги начинают быстро вращаться. Также, если я иду другим путем (theta = 0; ellipse(); theta = 0.3; ellipse();) круги рисуют все сразу, и я не могу создать оператор if, чтобы заставить theta вернуться к 0 и удалить и вырастите круг, когда он достигнет 2 * PI, потому что тета на самом деле не увеличивается (он просто остается на уровне 2.6). Если бы я мог получить какие-либо советы или замечания, я бы очень признателен.

ответ

0

У вас его почти нет. Несколько вещей выпрыгивают на меня:

Вы хотите, чтобы круги оставались на экране, поэтому вы не хотите каждый раз удалять старые кадры. Удалите первый звонок до background(), чтобы добиться этого.

Если вы хотите замедлить круг вниз, просто уменьшите thetaIncrease примерно на 0.15 или что-то в этом роде. Подумайте об этом как о замедлении вашего автомобиля от 30 миль/ч до 15 миль в час.

Наконец, вы только увеличиваете свою гипотенузу и радиус на 0.5 и 0.2 соответственно. Имейте в виду, что это в пикселях, и вы не заметите этого небольшого увеличения. Используйте что-то вроде 5 и 2, чтобы увидеть увеличение.

+0

Ahh спасибо! В этом есть смысл. – xKorix

Смежные вопросы