| Шестерня |
|
WertyXBOCT
| Дата: Воскресенье, 13.12.2009, 15:38 | Сообщение # 1 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
Динамически нарисовать шестерню. На входе количество зубьев, и диаметр шестерни. На выходе готовая шестерня... Может кто помочь?
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
sanek-x107
| Дата: Воскресенье, 13.12.2009, 15:48 | Сообщение # 2 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
в смысле шестерня?
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
Фил
| Дата: Воскресенье, 13.12.2009, 16:04 | Сообщение # 3 |
Всех уже задолбал
Группа: Проверенные
Сообщений: 1007
Статус: Offline
|
sanek-x107, сложно догадаться?
Храм нулей и единиц
|
| |
| | |
|
Ninja
| Дата: Воскресенье, 13.12.2009, 16:42 | Сообщение # 4 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 683
Статус: Offline
|
что-то напоминающее шестеренку Code rad = 50; cnt = 20; centx = 100; centy = 100; for (i = 0; i < cnt; i+=1) { d1 = i*360/cnt; d2 = 360/cnt*(i + 0.5); draw_line(centx + lengthdir_x(rad,d1), centy + lengthdir_y(rad,d1),centx + lengthdir_x(rad*1.3,d2),centy + lengthdir_y(rad*1.3,d2)); d1 = (i+1)*360/cnt; draw_line(centx + lengthdir_x(rad*1.3,d2),centy + lengthdir_y(rad*1.3,d2), centx + lengthdir_x(rad,d1), centy + lengthdir_y(rad,d1),); }
Oh, my God! You kill Kenny! You bastard!
|
| |
| | |
|
WertyXBOCT
| Дата: Воскресенье, 13.12.2009, 16:52 | Сообщение # 5 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
нене. Это не шестерня. Это звездочка :). Даже я такое могу.. Нужно вот это: или вот это:
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
Ninja
| Дата: Воскресенье, 13.12.2009, 17:08 | Сообщение # 6 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 683
Статус: Offline
|
по сути то же самое Code rad = 50; cnt = 15; centx = 100; centy = 100; draw_primitive_begin(pr_linestrip) for (i = 0; i <= cnt; i+=1) { d1 = i*360/cnt; d2 = 360/cnt*(i + 0.25); draw_vertex(centx + lengthdir_x(rad,d1), centy + lengthdir_y(rad,d1)); draw_vertex(centx + lengthdir_x(rad*1.2,d2),centy + lengthdir_y(rad*1.2,d2)); d1 = (i+0.75)*360/cnt; d2 = 360/cnt*(i + 0.5);
draw_vertex(centx + lengthdir_x(rad*1.2,d2),centy + lengthdir_y(rad*1.2,d2)); draw_vertex(centx + lengthdir_x(rad,d1), centy + lengthdir_y(rad,d1)); } draw_primitive_end();
Oh, my God! You kill Kenny! You bastard!
|
| |
| | |
|
FIXMAX
| Дата: Воскресенье, 13.12.2009, 17:35 | Сообщение # 7 |
Болтун
Группа: Пользователь
Сообщений: 166
Статус: Offline
|
WertyXBOCT, хоть я наверняка сказать не могу, но скорее всего ресчет настоящей шестрени будет напряжен для проца. Я механик по образованию, и 3-и года назад мы такое чертили. Вобщем если тебе на предложат хороший вариант, постараюсь как-то отсканить как это делается в оригинале. В жизни нарезается именно так:
http://bird-parrots.ru/ - Попугаи
|
| |
| | |
|
SRes
| Дата: Воскресенье, 13.12.2009, 17:48 | Сообщение # 8 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Его просто в спрайт надо сделать, Ninja уже дал формулу.
Velociped Inc.
|
| |
| | |
|
WertyXBOCT
| Дата: Воскресенье, 13.12.2009, 19:20 | Сообщение # 9 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
FIXMAX, сделай сканы пожалуйста :). Там нет так сложно. Для одной шестерни, нужно посчитать пару тангенсов один раз, несколько умножений + 50 умножений и тангенсов, в массив. Отрисовка 50 точек * количество зубьев. Если делать это один раз, то вообще никаких проблем не будет со скростью. Ninja, спасибо!)
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
FIXMAX
| Дата: Понедельник, 14.12.2009, 20:48 | Сообщение # 10 |
Болтун
Группа: Пользователь
Сообщений: 166
Статус: Offline
|
WertyXBOCT, мое предложение уже не в силе, думаю понимаешь почему.
http://bird-parrots.ru/ - Попугаи
|
| |
| |
|
|