Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 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 x0, y0 As Integer 'Центр окружности
    Dim r As Integer 'Радиус
    For a = 0 To 360 'А это градусы
        x = Sin(a) * r + x0
        y = Cos(a) * 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-сайт: softvito.narod2.ru
 Профиль | | #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-сайт: softvito.narod2.ru
 Профиль | | #8
Добавлено: 30.03.06 18:24
Vik

А множевство Мандельброта не рисовал?

Я люблю с ним поколдовать. Завораживающая вещь.

Неастоящий хаос:))

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 235
Ответов: 8360
 Профиль | | #9 Добавлено: 31.03.06 02:04
Чем больше радиус, тем меньше нужно ставить шаг цикла (для r=700 step 1 самое то)....


Как высчитать шаг в зависимости радиуса?

Ответить

Номер ответа: 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

Вопросов: 235
Ответов: 8360
 Профиль | | #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

Вопросов: 235
Ответов: 8360
 Профиль | | #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

Вопросов: 235
Ответов: 8360
 Профиль | | #15 Добавлено: 03.04.06 03:32
х.з. я постоянно шаг угла беру 0,1, при обычном круге (тестил радиусом от 10 до 300) всё вроде ок... в принципе больше радиус и не нужен...

Тут другая беда намечается...
Галимо как-то этот Image перемещается... шаг 0,1 вроде плавно но скорочть атстой. Всё в таймере выполняется, интервал=1... Таймер разогнать неполучается :) увеличая шаг мерцает... Короче DciecrX or OpenGL нужен. Писал маляву vito, молчит что-то... Никто примерчик набросать нехочет используя directX? :) 3д ненадо, 2д... но чтобы всё резко, быстро, без глюков и мерцаний итп... :)

Ответить

Страница: 1 | 2 |

Поиск по форуму





© Copyright 2002-2011 VBNet.RU | Пишите нам