Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 652
от 20.11.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 273, Экспертов: 41
В номере:Вопросов: 1, Ответов: 1


Вопрос № 109516: Помогите с решением задачи в среде Qbasic. Условие: Изобразить на экране движение прямой, которая в каждый момент касается окружности заданного радиуса, центр которой совпадает с центром экрана. Точка касания перемещается по окружности с пос...

Вопрос № 109.516
Помогите с решением задачи в среде Qbasic.
Условие:
Изобразить на экране движение прямой, которая в каждый момент касается окружности заданного радиуса, центр которой совпадает с центром экрана. Точка касания перемещается по окружности с постоянной скоростью.

Я предпологаю, что координаты по x будут заданы функцией косинуса, вот так x=r*cosa, где r-радиус окружности, а a-угол вращения (0-360). По у соответсвенно задаются x=r*sina.
Тогда:
screen 12
circle (320.240), 60
for a=0 to 360
x=60*cos(a)
y=60*sin(a)
line ???
а дальше я не знаю как быть. Может быть ход мыслей вообще не верен.
Отправлен: 15.11.2007, 10:39
Вопрос задал: Марсель (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 10)

Отвечает: HookEst
Здравствуйте, Марсель !
Все правильно, после построения, сразу видно как действовать дальше, не углубляясь в аналитическую геометрию.
Допустим:
SW и SH -ширина и высота экрана;
Xc,Yc и R - координаты центра и радиус окружности
X,Y - координаты точки касания, точка K
a-угол между радиусом и осью x, в градусах

нужно найти
Xl1,Yl1 - координаты первой точки прямой L1
Xl2,Yl2 - координаты второй точки прямой L2

нарисуем чертеж: экран(прямоугольник SW x SH), окружность, радиус(рассмотрим частный случай, 0 Теперь проведем вертикальную линию, проходящую ч/з точку(X,Y), она пересекает границы экрана в точках M(X,0) и N(X,SH).
Из треугольника KML1 видно, что Xl1 отличается от X на длину стороны ML1, а так как угол MKL1=a(взаимно перпендикулярные стороны), то длина ML1=KM*TAN(a) или Xl1=X+Y*TAN(a).
Аналогично, из треугольника KML2, следует, что Xl2=X-(SH-Y)*TAN(a).
Если не обязательно, чтобы точки L1 и L2 не выходили за пределы экрана, то на этом можно закончить, единствено нужно предусмотрить случаи a=90 и a=270, для которых TAN(a)-не существует. QBasica под рукой не оказалось, тестировал в VB6, но вроде как синтаксис такой же.
Успехов.

Приложение:

Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 15.11.2007, 13:12
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.2 от 20.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное