Как сделать спидометр в algodoo
Все скрипты записываются в скриптовом меню объекта. Оно находится в контекстном меню объекта «Script Menu» .
В поле OnCollide уже находится запись (e)=><> . Эта запись, по моему мнению, означает, что при столкновении (переменная E) выполнится (=> этот знак) то, что находится в фигурных скобках. В эти скобки-то мы и записываем наш скрипт.
Допустим, мы хотим, чтобы появился некий объект, пусть круг, в заданной нами точке.
Тогда нам нужно 2 объекта, которые будут взаимодействовать. Один из них мы и «заскриптуем».
Наш скрипт выглядит так:
Теперь давайте разберёмся подробно: Scene – означает место, в котором что - либо создастся. Точка после отделяет команду Add , которая значит «добавить». Добавляем мы круг – Circle . Дальше открываем ещё одни фигурные скобочки, в которые мы запишем параметры добавляемого объекта. А именно Pos – это позиция (она имеет вид, например [1,1], тоесть 1 по оси X и 1 по Y), в нашем случае Epos означает «позиция столкновения». Далее идёт знак «точка с запятой», он необходим, чтобы программа поняла, что дальше идёт другой параметр. Параметр Radius – это расстояние от центра круга до его края в метрах. Параметр Color – это цвет. Параметр CollideSet это набор столкновений, в нашем случае равный «А».
Внимательно следите за ошибками, любая лишняя, или недостающая буква, отсутствующие знаки приводят к ошибке скрипта вцелом!
Теперь давайте разберёмся с формулами.
Всем известно, что компьютер это – ЭВМ. Это значит, что он может вести расчёты. Вы можете не вычислять самостоятельно значения для параметров.
Самым простым примером будет сложение, вычитание, умножение или деление. Итак, скрипт:
OnCollide (e)=>
Означает, что при каждом столкновении заскриптованого объекта с простым у простого будет добавляться его собственное значение плотности. Допустим, это значение было равно 2, после 1 столкновения оно будет равно 2+2=4. После 2 столкновений – 4 + 4= 8. После 3 столкновений – 8+8 = 16. Этот принцип применим и к намного более сложным вычислениям.
Теперь давайте разберёмся ещё более подробно к ключевым словам, которые Phun и Algodoo понимают.
Other – Буквально означает: «Не этот, а другой». Заскриптованый объект влияет на другой объект, с которым столкнулся.
This - Буквально означает: «этот, а не другой». Заскриптованый объект влияет на себя и не влияет на объект, с которым столкнулся.
Geom – Применимо к лазерам, означает, что лазер влияет на объект, и не влияет на себя.
Laser – Применимо к лазерам, означает, что лазер влияет на себя, и не влияет на объект.
Итак, если вы поняли, как объект может непосредственно влиять на объект. Давайте рассмотрим случай, когда скриптовый объект находится на расстоянии от другого объекта, к которому относится. Непонятно? Ну, мне тоже было бы непонятно, если бы я этого не знал.
Объясняю: такой случай, например, когда нам надо вывести информацию о далёком объекте на Прямоугольник с текстом. Например, количество патронов, скорость, или любую другую.
Для этого нам потребуется ввести свою переменную, которая будет нести нужную информацию.
Нажимаем клавишу «тильда» (Буква «Ё» на русской раскладке, под эскейпом). Вылезло меню, это командная строка. Там вписываем нашу переменную – Scene.my.X := 350 . Где X – любой знак, цифра, или набор знаков; А число 350 – будет количеством патронов.
Итак, наша система будет получать данные о количестве патронов. Пусть 1 выстрел тратит 2 патрона. Выглядит так –
…Scene.my.Patron := Scene.my.Patron – 2…
Теперь нам надо вывести информацию, об оставшихся патронах. Обычно используют лазеры, но разница только в скорости обновления информации.
Создаём прямоугольник, делаем его чёрным, вписываем любой текст. Подгоняем текст по размеру, для удобства. К прямоугольнику, вернее рядом с ним, привинчиваем осью с мотором, какой-нибудь объект, так чтобы он бесконечно ударял в прямоугольник (желательно с большой скоростью).
В объект садим скрипт:
Получаем в прямоугольнике в скриптовом меню, в окне Text следующее
Означает к пустому тексту добавить значение нашей переменной. И вот наш прямоугольник показывает текущее значение этой переменной.
ВАЖНОЕ ПРИМЕЧАНИЕ! Если вы сохраните не всю сцену, а только те объекты, которые у вас получились, то переменная потеряется! Её необходимо снова вписать в консоль, и только потом добавлять ваши обьекты.
Algodoo - программа-конструктор для симуляции/анимации механических движений объектов двухмерного физического мира. Пользователю доступны инструменты для создания объектов любой формы, для задания им физических и кинетических параметров, для управления операциями над объектами как в статике, так и в динамике. С помощью этой программы можно создавать интерактивные уроки по физике, игры, симуляторы механических устройств. и просто с любопытством наблюдать за поведением объектов в зависимости от внешних воздействий. Для продвинутых авторов сцен есть возможность обогатить функционал с помощью скриптов.
Создание объектов
Создание уникального объекта
Если вы уже наигрались с арсеналом встроенных инструментов рисования объектов, то вам захочется иметь объект с нестандартной геометрией и текстурой. Это возможно и несложно:
- Сначала надо подготовить в графическом редакторе нужную фигуру и сохранить ее в виде PNG файла с прозрачным фоном.
- Затем уже в Algodoo загрузить эту фигуру на сцену:
- - Нарисовать любой замкнутый контур, например, круг;
- - Выделить его и нажать кнопку справа вверху;
- - Нажать кнопку [Find texture] в открывшемся окне настройки интерфейса фигуры;
- - Откроется менеджер файлов (не ахти какой удобный) - в нем надо выбрать на диске нужный PNG файл.
- Этим файлом будет залит наш круг;
- В окне настройки интерфейса фигуры нажать кнопку [Generate geometry from texture].
Ву-а-ля, дело сделано. Правда, не до конца и с оговорками, если дело касается фигуры, состоящей из отдельных кусков. В этом случае, во-первых, надо объедить фигуры в группу - с помощью ПКМ вызвать контекстное меню и выбрать Selection > Group. Теперь в статике вы сможете таскать и трансформировать фигуру как единое целое. Но стоит вам запустить анимацию, как фигура упадет и рассыпется на составные куски. Как этого избежать я еще не нашел, т.к. увлекся программой совсем недавно.
Еще одна заметка по текстуре. Её внутри фигуры можно передвигать, вращать, масштабировать - для этого существует специальный инструмент , который хорошо слушается мыши:
- Передвигать - с нажатой ЛКМ;
- Вращать - с нажатой ПКМ.
- Мастабировать - колёсиком мыши.
Сцена и ее анимация
После того, как объекты нарисованы, расставлены по своим местам, снабжены моторчиками, пружинами. осталось нажать на кнопку внизу на панельке управления сценой и всё придет в движение (при правильном планировании). На самом деле для отладки эту кнопку (которую заменяет клавиша [Пробел]) вы будете нажимать постоянно и на ранних этапах. Что еще можно сказать относительно сцены:
- передвигать сцену - нажать кнопку на нижней панельке и с зажатой ЛКМ передвигать;
- изменять масштаб - крутить колесико мыши с зажатой клавишей Crtl или кнопкой на нижней панельке;
- регулировать скорость анимации - при нажатии кнопки над ней появляется слайдер для этого;
- включать/открючать гравитацию - кнопкой на панельке;
- регулировать направление и силу ветра - кнопкой на панельке;
- показывать вспомогательную сетку, которая может быть полезной в статичном положении сцены для более точного позиционирования объектов - для этого используйте кнопку на нижней панельке - одиночный клик включает сетку, а двойной клик показывает окно настройки параметров сетки.
- отменить действия - стандартные кнопки на панельке.
Англо-русский словарик физических терминов
Angle - угол
Area - площадь
Attraction - притяжение (объектов между собой)
Collision - столкновение (в практике программы принадлежность объектов к тем или иным слоям, Collision Layer, влияет на то, какие объекты должны между собой сталкиваться, а какие нет)
Density - плотность
Energy - энергия
Force - сила
Freeze - заморозить
Friction - трение
Gravity - гравитация (притяжение Земли)
Immortal - бессмертный (свойство объекта, благодаря которому его не может убить Killer)
Killer - убийца (свойство объекта, благодаря которому он уничтожает все не Immortal объекты, к которым прикасается)
Liquify - жидкость (любую фигуру можно превратить в жидкость)
Mass - масса
Mirror - зеркало
Momentum - импульс, количество движения
Plot - график изменения во времени тех или иных физических характеристик объекта
Refractive index - коэффициент преломления
Restitution - восстановление (в практике программы это "резиновость", которая влияет на отскок объекта после соударения с препятствием)
Speed - скорость
Spongify - придуманный авторами программы тип объекта, по физическим свойствам схожий с губкой или плюшевой игрушкой
Strength - прочность
Velocity - скорость
Вот zip-файл c полноценной портабельной версией Algodoo 2.1 (пароль для разархивации newart Она начинает работать без предварительной инсталляции.
Вот ссылка на официальный сайт программы, где вы сможете скачать свежую инсталляционную версию.
Ещё программы для анимации:
• ActivePresenter // создание интерактивных и анимированных презентаций и тестов
• Animiz // создание анимированных презентаций с персонажами
• Articulate Storyline // конструирование онлайновых презентаций и обучающих курсов
• Aurora 3D Animation Maker // создание и анимирование 3d текстов и фигур
• Camtasia Studio // видеоредактор с анимационными инструментами
• Corel PhotoMirage // производство стильных фото-анимаций
• DP Animation Maker // "оживление" фотографий анимационными эффектами
• Explaindio Video Creator // программа для создания рисованного видео
• Express Animate // After Effects Lite с экспортом в Video, HTML5, GIF
• FantaMorph // морфинг изображений
• Google Web Designer // конструктор HTML5 баннеров и приложений
• HelpXplain // для создания анимированных онлайн-презентаций
• Hippani Animator // удобная анимационная студия с экспортом в HTML, video, анимированный gif
• Piskel // крайне привлекательная программа для создания и редактирования анимаций в стиле pixel art
• ProShow Producer // для создания продвинутых слайдшоу и видеопрезентаций
• Saola Animate // программа для быстрого и удобного создания анимации в HTML5
• ScreenToGif // анимированный Gif - запись/редактирование/конвертация
• VoxEdit // воксельный редактор для моделирования и анимации
• ФотоШОУ PRO // для создания видеороликов со слайдшоу
• Онлайн-сервисы для создания анимации // работают в браузере без загрузки на компьютер
тут пока сыро.. работаю над материалом
Scene.cloneEntityTo(объект, позиция). объект получается как раз по GeomID, либо напрямую, при столкновении с скриптовым.
сработал такой синтаксис:
print(scene.entityByGeomID(31));
Скриптинг в Phun. Перечень свойств у объектов (не полный)
1. AirFrictionMult – Множитель трения о воздух (0 – нет трения).
2. Attraction – Притяжение (отрицательное значение означает отталкивание).
3. AutoBrake – Авто тормоз (имеет 2 переменных True – да, False – нет).
4. Ccw – Параметр изменяющий направление вращения мотора (имеет 2 переменных True – по часовой, False – против часовой).
5. CollideSet – Параметр столкновений (рекомендуется создать объект, применить желательные столкновения A,B,C,D,E,F,G. и скопировать его CollideSet).
6. CollideWater – Параметр столкновений с водой (имеет 2 переменных True – да, False – нет).
7. Color – Параметр цвета, пишется в квадратных скобках, через запятые. 4 значения. 1 – это красный. 2 – это зелёный. 3- это синий. 4 – это прозрачность. Все от 0 до 1 (например [1,1,1,1] – белый, [1,0,0,1] – красный).
8. Constant – Параметр пружины, определяет её силу (большие значения могут привести к пропаданию пружины, или её некорректному поведению).
9. ControllerAcc – Ускорение, при назначении на обьект клавиш управления (клавиши управления настраиваются в контекстном меню обьекта).
10. ControllerInvertX – Инверсия клавиш управления по горизонтальной оси (имеет 2 переменных True – да, False – нет).
11. ControllerInvertY – Инверсия клавиш управления по вертикальной оси (имеет 2 переменных True – да, False – нет).
12. ControllerReverseXY – Реверс горизонтальной и вертикальной оси.
13. Cutter – Параметр лазера, отвечает за разрезание лазером (имеет 2 переменных True – да, False – нет).
14. DampingFactor – Затухание для пружин (отрицательное значение означает, что пружина будет колебаться бесконечно, увеличивая частоту).
15. Density – Плотность (если значение равно 0 – объект пропадёт, 0.01 – вес воздуха в игре).
16. DistanceLimit – Точно неизвестно, однако в некоторых случаях значение 0.01 даёт возможность уменьшить «растягивание цепей».
17. DrawBorder – Рисовать границы объекта (имеет 2 переменных True – да, False – нет).
18. DrawCake – Рисовать сектор круга (имеет 2 переменных True – да, False – нет).
19. FadeDist – Дистанция распада лазера (расстояние, на которое лазер может светить).
20. FadeTime – Время, за которое след трейсера пропадёт.
21. Friction – Трение (большие значения могут «приклеить» 2 обьекта, но это соединение не надёжно).
22. HeteroCollide – Параметр, позволяющий двум одинаковым обьектам не сталкиватся между собой (оба объекта должны обладать им. Имеет 2 переменных True – да, False – нет).
23. Immortal – Бессмертие / невозможность стереть объект, а лазеру разрезать его. (Бессмертный объект можно стереть, если его значение плотности будет равно 0. Имеет 2 переменных True – да, False – нет).
24. ImpulseLimit – Сила, с превышением которой ось исчезнет (значение равное +Inf означает что ось НЕ исчезнет, при любых нагрузках).
25. InertiaMultipler – Точно неизвестно, из перевода – Множитель инерции.
26. Killer – Стиратель (имеет 2 переменных True – да, False – нет).
27. LegasyMod – Точно неизвестно, возможно тип обработки поведения пружины, разницы не замечено.
28. Length – Расстояние, при котором пружина в покое (проще говоря, длина пружины в нормальном состоянии).
29. MaterialVelocity – Скорость в метр/секунда.
30. MaxRays – Максимум отражений/преломлений лазера (если значение равно 0 , то лазер даже через прозрачный объект не пройдёт).
31. Motor – Параметр оси. Мотор или просто ось (имеет 2 переменных True – да, False – нет).
32. MotorSpeed – Скорость мотора (измеряется в градус/секунда, в связи, с чем рекомендую копировать с уже известной оси).
33. MotorTorgue – Сила, с которой мотор вращается (Значение может быть отрицательным, тогда вращение будет в обратную строну.).
34. OnCollide, OnLaserHit, OnHitByLaser – Это те стр
entityByGeomID
GadApedia/Thyme algodoo english – ZUM-Wiki
wiki.zum.de
Специализированный двухмерный симулятор физики. Или по другому песочница, позволяющая создать вам свой мир, который будет полностью зависеть от вашей фантазии.
Программа Algodoo представляет собой анимационный графический редактор, использующий технологию XML. Приложение дает возможность наглядно увидеть работу нарисованной механической системы, а также, меняя параметры сцены, оптимизировать и анализировать полученные решения. Огромным плюсом пакета является его понятный интерфейс и простота освоения.
Algodoo имеет богатый инструментарий для создания различных систем и механизмов. Базовые функции включают в себя: рисование прямоугольников, кругов, кривых линий и фигур не правильной формы; масштабирование, перемещение, поворот и удаление объектов; отмену/возврат последних действий. Также программа Algodoo поддерживает функции: разрезания деталей на части (во время паузы и «на лету»), создания уровня земли, добавления на объекты трассеров для отслеживания передвижений объекта, вывода графиков, векторных стрелок и цифровых значений ряда величин. Поддерживаются слои (каждый объект на двумерном поле имеет свой слой и взаимодействует лишь с ним), двигатели (прикрепляются к объекту и задают его скорость/силу вращения и клавиши включения/выключения) и крепежи (скрепляют несколько объектов, лежащих в разных слоях). Имеется возможность загружать в симулятор любые сторонние рисунки. При этом он становится одним из объектов сцены соответствующей формы и текстуры, которому можно задавать любые физические свойства и который может взаимодействовать с любыми другими объектами.
Для всех объектов сцены устанавливаются различные физические параметры – объем, вес, характер материала (дерево, сталь, гелий и т.д.), упругость, скорость, длина и сила натяжения пружины, высота и шаг зубцов шестеренок и многое другое. Программа Algodoo содержит образцы насосов, шестеренок, пружин, лазеров, призм, цепей, автоматических линий и прочее. В приложении можно легко собрать модели автомобилей, часов, оружия, деталей конструктора Лего. Симулятор проводит расчет геометрической оптики, учитывая показатели преломления, углы, дисперсию; достаточно реалистично моделируется в нем вода. После создания сцены и нажатия кнопки «Play» эксперимент оживает под действием ветра, силы тяжести, сопротивления воздуха, моторов, инерции и т.д. Симулятор интерактивен, в любой момент по ходу демонстрации можно вносить коррективы – добавлять объекты или изменять их характеристики.
Программа Algodoo имеет встроенный скриптовый язык под названием Thyme, привносящий в симулятор еще большую свободу действий и позволяющий создавать: объекты с уникальными физическими свойствами, явления и эффекты (например, плавление объектов или химические процессы). В Thyme доступны массивы, условные операторы, переменные, обработка событий, происходящих в среде моделирования.
История программы Algodoo началась в 2008, когда её автор, студент университета Умео (Швеция) Эмиль Эрнерфельдт готовился к получению магистерской степени по информатике. Тогда симулятор назывался Phun. Очень быстро он стал популярным в интернете, а его создатель совместно с товарищами основал компанию Algoryx Simulation. Разработчик переименовал программу в Algodoo и с тех пор постоянно совершенствует и развивает своё детище.
Совсем недавно программа Algodoo стала бесплатной. На официальном сайте симулятора физических процессов имеется множество обучающих материалов, а также хранилище algobox, предназначенное для обмена работами между пользователями приложения.
Язык интерфейса ПО Algodoo многоязычный. Последняя версия приложения поддерживает немецкий, английский, испанский, французский, хорватский, польский, шведский, японский, китайский и корейский языки. Пользователи русского фан-сайта программы написали русификатор Algodoo, доступный по адресу
У данного программного обеспечения скромные системные требования. Функционирует оно на трех платформах – Microsoft Windows, Mac OS и iOS.
В своей статье, посвященной использованию интерактивной доски на уроках физики я упомянула о физическом 2D симуляторе Algodoo. У моих читателей возник вопрос: можно ли настроить в Algodoo русский язык и как это сделать? В этой статье хочу рассказать об установке и руссификации программы.
Установка Algodoo
После того, как программа установится, она автоматически будет запущена. В ней сразу открывается окно настроек, где можно нажать кнопку Settings, пролистать до раздела языков и убедиться, что русского среди них нет.
Скачиваем и устанавливаем руссификатор Algodoo
Для установки руссификатора нужно его скачать. К сожалению, на официальном сайте на данный момент раздел языков недоступен, поэтому предлагаю здесь руссификатор Algodoo скачать . Этот файл нужно просто запустить двойным щелчком левой кнопкой мышки (сама программа Algodoo должна быть уже установлена).
Снова запустится Algodoo и окно настроек в нем. Это окно настроек надо закрыть или просто сдвинуть. Под ним будет маленькое окошко, в котором надо просто нажать кнопку Ok. В открывшемся еще одном маленьком окне снова соглашаемся. После этого нужно закрыть Algodoo и снова его запустить. Еще раз повторюсь: это окошко спрятано большим окном настроек, а кнопку Ok на нем нажать обязательно нужно. Если это окошко не заметить, то нужных действий не получится произвести, а значит, и и не установится в нашем Algodoo русский язык.
Настраиваем программу, чтобы был в Algodoo русский язык
Теперь в окне настроек в разделе языков уже появится русский язык, который и надо выбрать, щелкнув по его названию левой кнопкой мышки.
Если что-то непонятно, смотрим видео, как это получилось у меня
Читайте также: