не может получить спираль Архимеда - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь нарисовать спираль, но я получаю круг.

    for(int i = 0 ; i < 121; i++)
    {
        for(int a = 0 ; a <= 3; a++)
        {
            if(a == 1){
                vertires_chikl[d] = GLfloat(X + R * cos(t));
                d++;
            }
            if(a == 2){
                vertires_chikl[d] = GLfloat(Y + R * sin(t));
                d++;
            }
            if(a == 3){
                vertires_chikl[d] = GLfloat(0.0);  
                d++;
            }
         }
        t = t+ 0.256f;
        // we are moving in a circle
        R = R + 0.00001f;
        // circle shifted to the side (right and up)
//        Y = Y+ 0.0001f;
//        X = X+ 0.0001f;
    }

enter image description here

почему я делаю неправильно ????

пока я пытался изменить функцию.Как я помню, при увеличении переменной R должен быть рост и изменение окружности.Разве это не происходит, почему ???

модель mamamatik, которую я даю там

после комментария R

enter image description here

через 5 секунд: 3

enter image description here

1 Ответ

0 голосов
/ 22 февраля 2019

спасибо, ткаусл.ошибка заключалась в том, что глобальная переменная static float R = 0.4f; // Radius of circle.

я делаю этот локальный

float R = 0.4f; // Radius of circle.
for(int i = 0 ; i < 121; i++)
    {
        for(int a = 0 ; a <= 3; a++)
        {
            if(a == 1){
                vertires_chikl[d] = GLfloat(X + R * cos(t));
                d++;
            }
            if(a == 2){
                vertires_chikl[d] = GLfloat(Y + R * sin(t));
                d++;
            }
            if(a == 3){
                vertires_chikl[d] = GLfloat(0.0);  
                d++;
            }
         }
        t = t+ 0.256f;
        // we are moving in a circle
        R = R + 0.004f;
        // circle shifted to the side (right and up)
//        Y = Y+ 0.0001f;
//        X = X+ 0.0001f;
    }

результат

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...