Вопрос: Математика, геометрия х.з. :) | Добавлено: 29.03.06 12:38 |
Автор вопроса: ![]() |
Я короче не силёе в этих науках :) А задачка вот какая...
Есть гденибуть круг, в пикчебоксе например... нарисованный он или нет, неважно... есть круг, мы всё про него знаем (положение, радиус)... и есть Image в этом пикчебоксе, надо чтобы он бегал по линии этого круга... т.е. круг - орбита, а имидж должен ездить по орбите... Смотрел примеры стрелочных часов, там изменяют Scale у покчебокса, так вот желательно чтоб без этого! начало 0,0 ! |
Ответы | Всего ответов: 17 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #1 | Добавлено: 29.03.06 19:30 |
Блин, че-то подобное делал на QBasice, загонял координаты XY орбиты в массив, вспомню дам знать... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #2 | Добавлено: 29.03.06 19:45 |
Dim x0, y0 As Integer 'Центр окружности
Dim r As Integer 'Радиус For a = 0 To 360 'А это градусы x = Sin ![]() y = Cos ![]() PSet (x, y) Next Чем больше радиус, тем меньше нужно ставить шаг цикла (для r=700 step 1 самое то).... З.Ы. А если за место cos или sin tan или ctan поставить..)) |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #3 | Добавлено: 29.03.06 20:24 |
я так понял те полярные координаты ботать надо. Все просто. Я помню так "Фигуры Лиссажу" писал. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 29.03.06 20:38 |
Vik
Тебе - то просто ![]() Я короче не силёе в этих науках : )
Объясни поподробнее ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #5 | Добавлено: 30.03.06 11:52 |
Объясни поподробнее
![]() Да уже avdey вроде написал. Ну если вкратце то так: в декартовой системе есть координаты х и у. В полярной же они тоже есть только это радиус, и угол на который повернуть, скажем rcos(fi). C помощью полярных координат удобнро работать с теми же часами, так как правильное сочетание синуса и косинуса дают круг. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #6 | Добавлено: 30.03.06 12:47 |
2Vik
А че за: "Фигуры Лиссажу"
какая картинка получается? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #7 | Добавлено: 30.03.06 17:42 |
Картинки там разные были, в общем там все зависело от частот(их кратности). Картинки разные были, но красивые, напиши в поисковике Фигуры лиссажу и увидишь. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 30.03.06 18:24 |
Vik
А множевство Мандельброта не рисовал? Я люблю с ним поколдовать. Завораживающая вещь. Неастоящий хаос ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #9 | Добавлено: 31.03.06 02:04 |
Чем больше радиус, тем меньше нужно ставить шаг цикла (для r=700 step 1 самое то)....
Как высчитать шаг в зависимости радиуса? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #10 | Добавлено: 31.03.06 09:25 |
2HACKER
Ну я получал опытным путем (в зависимости от количества пива..))) Можеш вывести соотношение Эмпирическим путем (вот это меня прет), например: Если для r=700 step=1 Good, then нужно для r=1000, составляем пропорцию для 700 нужно 1 для 1000 нужно x x=(1000*1)/700 т.е. 10/7=1.42 вот те и ответ: на каждое увеличение r на 300, step нужно уменьшать на 0.42. Можно расчитать для 500 (а не для 300), тогда уменьшать нужно на 0.5 Блин че написал (я не в бреду), должно быть правильно..........)))) |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #11 | Добавлено: 31.03.06 16:10 |
ок спасиб ![]() ![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 283551900 Вопросов: 1 Ответов: 74 |
Профиль | Цитата | #12 | Добавлено: 31.03.06 20:42 |
avdey Оригинально но можно за критерий взять линейное перемещение.
L - линейное перемещение. R – радиус круга. delta = acos( 1 - (L^2)/(2*r^2) ) – шаг |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #13 | Добавлено: 02.04.06 00:00 |
2 Sergey
Ну вот... по4аЛОСЯ ![]() расскажите что без знания математики я никакой программист итп ![]() Плз, проще! ![]() Арккосинус что-ли? Я болел когда аркосинусы проходили ![]() |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 283551900 Вопросов: 1 Ответов: 74 |
Профиль | Цитата | #14 | Добавлено: 02.04.06 16:59 |
HACKER
acos - Арккосинус линейное перемещение - расстояние между текущем положением и будущем, если будет шаг delta! То есть если хочешь чтоб объект переместился на L =10 пикселей по кругу радиусом r=100 то шаг угла должен быть delta = acos( 1 - (L^2)/(2*r^2) )= acos(1-(10^2)/(2*100^2))= acos(0.995)=~0.1 |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #15 | Добавлено: 03.04.06 03:32 |
х.з. я постоянно шаг угла беру 0,1, при обычном круге (тестил радиусом от 10 до 300) всё вроде ок... в принципе больше радиус и не нужен...
Тут другая беда намечается... Галимо как-то этот Image перемещается... шаг 0,1 вроде плавно но скорочть атстой. Всё в таймере выполняется, интервал=1... Таймер разогнать неполучается ![]() ![]() ![]() |
|