Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прикрепить ручку к штопору / 11 сообщений из 11, страница 1 из 1
11.01.2012, 17:08
    #37609673
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
Курсач по компьютерной графике - изображение штопора. Проблема в "изогнутом к верху и посередине" колене, которое соединяет спираль штопора с его ручкой. Спираль штопора рисую поточечно как

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
            //вычисление вершин
            double ks = 1.0 / M1; //коэффициент заострения
            for (int i = 0; i < N; i++)
            {
                double r1 = r;
                for (int j = 0; j < M + M1; j++)
                {
                    if (j < M)//спираль
                    {
                        V[i, j].x = (R + r * Math.Cos(i * 2 * Math.PI / N)) * Math.Sin(j * k * 2 * Math.PI / (M + M1));
                        V[i, j].y = (R + r * Math.Cos(i * 2 * Math.PI / N)) * Math.Cos(j * k * 2 * Math.PI / (M + M1));
                        V[i, j].z = f * r * Math.Sin(i * 2 * Math.PI / N) + s * k * j * Math.PI / (M + M1);
                    }
                    else //заострение (утончающаяся спираль)
                    {
                        V[i, j].x = (R + r1 * Math.Cos(i * 2 * Math.PI / N)) * Math.Sin(j * k * 2 * Math.PI / (M+M1));
                        V[i, j].y = (R + r1 * Math.Cos(i * 2 * Math.PI / N)) * Math.Cos(j * k * 2 * Math.PI / (M + M1));
                        V[i, j].z = f * r1 * Math.Sin(i * 2 * Math.PI / N) + s * k * j * Math.PI / (M + M1);

                        r1 -= ks; //утоньшение линейное
                    }
                }
            }



Не могу сообразить параметрическое задание колена. Помогите, плиз. Спасибо
...
Рейтинг: 0 / 0
11.01.2012, 17:17
    #37609706
Algol36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
kmaw,

Колено это та же самая спираль, только с резко уменьшающимся радиусом.
...
Рейтинг: 0 / 0
11.01.2012, 17:19
    #37609712
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
Algol36kmaw,

Колено это та же самая спираль, только с резко уменьшающимся радиусом.

надо еще чтобы она вверх изогнулась, и чтобы её конец располагался точно в центре спирали
...
Рейтинг: 0 / 0
11.01.2012, 17:21
    #37609717
Algol36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
kmaw,

>её конец располагался точно в центре спирали

он и будет в центре спирали, когда радиус будет нулевой.
...
Рейтинг: 0 / 0
11.01.2012, 17:24
    #37609724
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
Algol36kmaw,

>её конец располагался точно в центре спирали

он и будет в центре спирали, когда радиус будет нулевой.

надо загнуть конец спирали под 90. но сделать это "плавно"
...
Рейтинг: 0 / 0
11.01.2012, 17:30
    #37609741
Algol36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
kmaw,

Он и будет плавно.
Если штопор вдоль оси Y. И колено начинается в точке Y=0, то нужно уменьшать радиус штопора вот так (по гиперболе):
r = R/(y+1) (при y>=0)
r = R (при y<0)
...
Рейтинг: 0 / 0
11.01.2012, 18:36
    #37609852
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
Сдал курсач - забыл "штопор". Как символично!
...
Рейтинг: 0 / 0
11.01.2012, 19:48
    #37609956
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
блин, что-то вообще отупляюсь - может на примере моего кода покажите, как надо "согнуть" пружину
...
Рейтинг: 0 / 0
11.01.2012, 19:54
    #37609962
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
Да очень просто. Берёшь похожую фигуру. Цилиндр например. Делаешь ему хорошую тесселяцию
чтоб боковая поверхность была образована сеткой мелких прямоугольников. Далее нужно центральную
часть сделать выпуклой. Для этого образующую цилидра (окружность) делаем меняющейся по
какой-либо кривой (напр. синусоида) так чтоб максимум синуса был по центру цилинда а минимумы
где-то ближе к краям ручки.
...
Рейтинг: 0 / 0
11.01.2012, 20:02
    #37609973
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
mayton,

ну это уже другой кусок - потом его надо присоединить к основной пружине - будут проблемы - у пружины есть интерактивно изменяемые параметры дискретизации и формы, которые должны действовать на неё всю, включая изгиб

я так, наверное сделаю, когда совсем отчаюсь "согнуть" пружину
...
Рейтинг: 0 / 0
11.01.2012, 20:46
    #37610008
kmaw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрепить ручку к штопору
всем спасибо, тема закрыта
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прикрепить ручку к штопору / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]