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