| Blog |

Free PNGs

VPython - Web VPython and VPython 7

Перевод статьи - VPython Web VPython and VPython 7

Автор(ы) - Ruth Chabay, David Scherer, and Bruce Sherwood

Источник оригинальной статьи:

https://www.glowscript.org/docs/VPythonDocs/index.html

Использование VPython для создания 3D-анимации

VPython позволяет необычайно легко писать программы, генерирующие 3D-анимации с возможностью навигации в реальном времени. Он основан на языке программирования Python, который широко используется во вводных курсах по программированию благодаря своему чистому дизайну, а также широко используется в науке и бизнесе. На Glowscript.org нажмите «Примеры программ», чтобы увидеть, как используется VPython. tinyurl.com/VPintro — это 8-минутное введение в VPython от Брюса Шервуда. Для использования Web VPython не требуется установка программного обеспечения, так как он работает в вашем браузере. Можно также использовать VPython с установленным Python («VPython 7»).

Эта документация написана с использованием синтаксиса Python, поскольку почти все пользователи Web VPython пишут свои программы с использованием Python, но можно также писать программы и на JavaScript. В этой статье объясняется, как интерпретировать документацию для использования в программах JavaScript.

Слева полная документация по VPython.

Учебник «Безделушка», созданный для студентов вводного курса физики, полезен для всех, кто плохо знаком с VPython.

Для краткого ознакомления см. следующие видеоролики на YouTube, но при просмотре англоязычных видеороликов имейте в виду, что для текущей версии VPython имя модуля — «vpython», а не «визуальный», а графическое отображение показано в на вкладке браузера, а не в чистом окне. (Кроме того, для Web VPython можно не импортировать vpython.)

3D-объекты (испанская версия Objetos 3D от Хавьера Карро)

Назначение переменных (испанская версия Asignación de VariablesХавьер Карро)

Начальные циклы (испанская версия Comenzando con BuclesХавьер Карро)

Петли и анимация (испанская версия Bucles y AnimaciónХавьер Карро)

Масштабные коэффициенты (испанская версия Factores de EscalaХавьер Карро)

Отладка синтаксических ошибок

Списки, часть 1 (испанская версия Listas 1 Хавьера Карро)

Списки, часть 2 (испанская версия Listas 2 Хавьера Карро)

Существует серия руководств по Web VPython от Ретта Аллена в контексте вычислительного прогнозирования движения на уровне вводного курса физики. В его руководствах используются инструменты на trinket.io, которые встраивают написание и запуск программ Web VPython в среду, подобную ноутбуку. Легко использовать Trinkets, чтобы добавить как редактирование, так и выполнение Web VPython на ваши собственные веб-страницы, и Аллен в своем блоге по физике для журнала Wired показал примеры этого.

Начиная

Чтобы написать программу VPython, войдите в систему на GlowScript.org. Рекомендуется использовать браузер Chrome или Edge, так как они предоставляют наиболее полезные сообщения об ошибках, хотя программы можно писать и запускать во всех браузерах, в том числе на смартфонах и планшетах. В некоторых случаях программные ошибки видны только при нажатии Shift-Ctrl-J для отображения консоли браузера.

* Вы увидите предложение «Вы вошли в систему как <ваше имя пользователя>, и ваши программы находятся здесь ». Щелкните здесь .

* Нажмите « Создать новую программу» , чтобы создать новую программу в папке «Мои программы ». (Программы в вашей личной папке недоступны для других.) Выберите имя для программы, которое не должно содержать пробелов или символов подчеркивания.

* Под строкой GlowScript 3.2 VPython введите box() . Щелкните Запустить эту программу, чтобы запустить вашу программу. Вы увидите белую рамку на черном фоне.

* Используйте правую кнопку (или CTRL-перетаскивание левой кнопки) мыши, чтобы повернуть камеру, чтобы просмотреть сцену под разными углами.

* Для увеличения и уменьшения масштаба используйте две кнопки, перетаскивание с нажатой клавишей ALT/OPTION или колесо прокрутки мыши. Сенсорный экран: проведите пальцем или поверните двумя пальцами; ущипнуть/растянуть, чтобы увеличить.

* Для панорамирования влево/вправо или вверх/вниз перетащите мышь с нажатой клавишей SHIFT.

Использование текстового редактора

Вот список сочетаний клавиш для поиска, замены и т. д. Во время редактирования нажмите Ctrl-1 (Cmd-1 на Mac), чтобы запустить программу в том же окне. Нажмите Ctrl-2 (Cmd-2 на Mac), чтобы запустить программу в отдельном окне, что позволит вам одновременно просматривать программу и ее выполнение. Если вы изменили свою программу, снова нажмите Ctrl-2 в окне редактора, чтобы повторно запустить программу с новыми изменениями. Web VPython использует текстовый редактор ACE. Поскольку ACE не работает на мобильных устройствах, там используется более простой редактор.

Особенно полезным сочетанием клавиш является Ctrl-/ (Cmd-/ на Mac). Выберите одну или несколько строк в вашей программе и нажмите эту клавишу, чтобы включить или выключить комментарии к этим строкам. Кроме того, выберите одну или несколько строк и нажмите Tab, чтобы сделать отступ, или Shift-Tab, чтобы убрать отступ.

Разрешение другим запускать ваши программы

Просматривая текст вашей программы, нажмите «Поделиться этой программой», чтобы узнать, как разрешить другим людям запускать вашу программу. Чтобы люди могли запускать вашу программу, ссылаясь на нее, программа должна находиться в общей папке или быть экспортирована на ваш собственный веб-сайт. На самом деле код, доступный на странице общего доступа, можно просто вставить в файл и сохранить с расширением «.html», а затем запустить программу, просто дважды щелкнув html-файл.

 

 Описание опций, доступных на левом поле

Введение: основы Python и VPython.

Учебник по VPython: больше о VPython, включая создание анимации

Вступительные видеоролики : видеоролики, перечисленные выше, легко доступны из любой части справки.

Изображения 3D-объектов: как выглядят объекты

Выберите 3D-объект: Детали цилиндра, ящика и т. д. Начните с цилиндра для обзора.

Работа с 3D-объектами: проблемы, которые относятся ко всем 3D-объектам: цвет, материал и т. д. Ключевые элементы включают в себя следующее:

    Векторные операции: величина, точечное и векторное произведение, вращение и т. д.

    Графики: построение графиков данных.

    Математические функции: включает функции факторной/комбинированной статистики

Холсты/События: Создание/изменение окон; обработка событий мыши/клавиатуры

Обязательно изучите множество примеров программ Web VPython , написанных с использованием Python или JavaScript. Опция VPython основана на компиляторе RapydScript-NG Python-to-JavaScript.

Как упоминалось ранее, trinket.io предлагает еще одну среду для написания программ Web VPython. Нажмите «Новый брелок», затем выберите «GlowScript» и выберите Python для обычного редактирования текста или Blocks для редактирования с подсказками.

Как правило, модули Python нельзя импортировать в программы Web VPython, поскольку они работают в среде JavaScript. Однако можно импортировать «случайный» модуль Python в программу VPython, предоставляемую инструментом RapydScript-NG, который преобразует Python в JavaScript. Нельзя использовать форму «из случайного импорта *», но необходимо использовать «импортировать случайным образом» или «импортировать случайным образом как rr» (или другое имя) или «из случайного импорта случайным образом» (или другой список функций). Доступны не все функции модуля Python random..

 

Для тех, у кого есть Python и/или предыдущий опыт работы с VPython

Если вы опытный программист Python и/или имеете большой опыт работы со старым «классическим VPython» (VPython 6 или более ранняя версия), обязательно прочитайте эту статью на различиях.

 

Использование Web VPython без подключения к интернету; использование разработчиками

Существует статья в которой объясняется, как использовать Web VPython без подключения к Интернету, включая информацию о том, как разработчики могут использовать эту возможность.

 Архитектура Web VPython

Вот краткий обзор архитектуры Web VPython. Гораздо более обширные технические детали архитектуры Web VPython доступны здесь, включая видео семинара по теме. Также есть статья в которой описывается, как была реализована прозрачность на уровне пикселей и выбор мышью.

 

 Краткая история

VPython был создан Дэвидом Шерером в 2000 году. В 2011 году Дэвид Шерер и Брюс Шервуд инициировали разработку Web VPython, аналогичной среды программирования, но работающей в браузере. Изначально программы нужно было писать на JavaScript, но в 2014 году появилась возможность использовать Python; в настоящее время программы Web VPython могут быть написаны либо на Python, либо на JavaScript. Вот  журнал основных событий, а вот  открытый исходный код  для этого проекта. В блоге есть статья «Временная шкала разработки VPython». Брюс Шервуд — ведущий разработчик.

VPython также можно использовать с установленным Python благодаря работе, начатой ​​Джоном Коди в 2014 году и продолжающейся доработкой Джоном Коди, Рут Чабай, Брюсом Шервудом, Стивом Спиклмайром и Мэттом Крейгом. Он использует синтаксис Web VPython, но со стандартным Python, тем самым обеспечивая доступ к стандартным модулям Python. Этот вариант VPython называется «VPython 7». Подробнее см . vpython.org. Эта документация действительна как для Web VPython (на основе браузера), так и для VPython 7 (установленный Python).

 

Кредиты

Сальваторе ди Дио продемонстрировал в своем эксперименте RapydGlow  http://salvatore.pythonanywhere.com/RapydGlow , как он может использовать компилятор RapydScript Python-to-JavaScript с графикой Web VPython. Это вдохновило на реализацию API VPython (vpython.org) на Glowscript.org. Он предоставил файл papercomp.js для перегрузки операторов, основанный на работе Юрга Лехни (PaperScript: http://scratchdisk.com/posts/operator-overloading . Он также собрал поддержку перегрузки операторов и возможность писать синхронный код в файл transform-all.js, основанный на работе Бруно Жухье (Streamline: https://github.com/Sage/streamlinejs) и Марийна Хавербеке (Acorn.js: https://github.com/marijnh). Поддержка VPython API в браузере возможна благодаря работе Александра Цепкова (RapydScript: https://github.com/atsepkov/RapydScript) и Чарльза Лоу (браузерный RapydScript: https://github.com/charleslaw/ RapydScript_web).

В январе 2017 года оригинальный компилятор RapydScript был заменен на RapydScript-NG Ковидом Гоялом, который приближается к обработке истинного синтаксиса Python. Гоял оказал исключительную поддержку, часто исправляя обнаруженную ошибку всего за несколько часов. Он также является разработчиком Caliber, широко используемого инструмента для преобразования форматов электронных книг.

Когда в 2011 году Дэвид Шерер и Брюс Шервуд запустили проект GlowScript, Шерер реализовал перегрузку операторов и синхронный код, используя существующие на тот момент библиотеки. В 2015 году возникла необходимость перейти на более новые библиотеки из-за сбоя компиляции в некоторых браузерах; Сальваторе ди Дио оказал решающую помощь в этом обновлении. В январе 2017 года операторская перегрузочная техника была дополнительно обновлена.

Документацию по VPython подготовили Рут Чабай, Дэвид Шерер и Брюс Шервуд.