Шестерня - Общие вопросы разработки игр - Разработка игр на Game Maker (Simple Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Общие вопросы разработки игр » Шестерня (Нарисовать шестерню)
Шестерня
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/ - Попугаи
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Общие вопросы разработки игр » Шестерня (Нарисовать шестерню)
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход