Упражнения на проведение измерений

Пример - №117.

Условие задачи:

Определите расстояния между точками U и V, V и W, W и U (рисунок 1). Сравните расстояние между точками U и W с длиной ломаной UVW.
Рисунок 1

Рисование

Стартовый вид фильма Flash, реализующего эту задачу, с указанием содержащихся в нём объектов, показан на рисунке 2.


Рисунок 2
Экземпляр R видеоклипа R1 представляет собой перетаскиваемый объект. Создание перетаскиваемых объектов описано здесь.

Из рисунка 1 видно, что для нахождения искомых расстояний линейку надо вращать. Вращение объекта R1 реализуется с помощью кнопок и поля вводимого текста incangle. Величина, указанная в поле incangle, определяет угол поворота в градусах. Два экземпляра кнопки RotateButton обеспечивают вращение в двух направлениях (по часовой стрелке и против часовой стрелки). Ниже приводятся соответствующие сценарии.

Поворот против часовой стрелки (левая кнопка на рисунке 2):

on (press)
{
//angle - угол наклона объекта R, область видимости - временная шкала, область изменения [0; 360)
//incangle - величина изменения угла наклона
   if (angle>=360)   { angle = angle-360; }
   if (int(incangle)>360)   { incangle = int(incangle)-360; }
   if (angle<0)   { angle = angle+360; }
   R._rotation = angle-int(incangle);      //Поворот R
   angle = R._rotation;
}

Поворот по часовой стрелке (правая кнопка на рисунке 2):

on (press)
{
   if (angle>=360)   {angle = angle-360;}
   if (int(incangle)>360)   {incangle = int(incangle)-360;}
   if (angle<0)   {angle = angle+360;}
   R._rotation = angle+int(incangle);      //Поворот R
   angle = R._rotation;
}

Из условия задачи видно, что она имеет однозначный ответ (а именно, UV=2, VW=3, UW=4, UW<UVW). Поэтому, обработка значений, введенных в текстовые поля a1...a4, сводится к объединению их в одну строку. Сценарий, размещённый в ключевом кадре основной временной шкалы, имеет вид:

stop ();
//Присвоение начальных значений переменным angle и incangle
incangle = 1;
angle = R._rotation;
//Определение пользовательской функции makeAnswer ()
function makeAnswer ()
{
   a=mc1.a1.toString()+"_"+mc1.a2.toString()+"_"+mc1.a3.toString()+"_"+mc1.a4.toString();
}
makeAnsver();

Сценарий передачи ответа содержится в экземпляре mc1 видеоклипа MC:

onClipEvent (keyUp)
{
   _root.makeAnswer();
   fscommand ("1", _root.a); }

Просмотреть результат в новом окне


Назад
К содержанию
Далее