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

Головна

Якщо ви новачок у Python
та VPython: Вступ

Підручник з VPython

Вступні відео

Фотографії 3D-об'єктів

Що нового

Класичний веб-сайт VPython
Ліцензія VPython
Веб-сайт Python

VPython

GlowScript VPython і
VPython 7

materialetc

Використання VPython для створення 3D-анімації

VPython робить надзвичайно простим написання програм, які генерують навігаційну 3D-анімацію в реальному часі. Він заснований на мові програмування Python, яка широко використовується у вступних курсах програмування завдяки чистому дизайну, а також широко використовується в науці та бізнесі. На glowcript.org натисніть "Приклад програм", щоб побачити, як використовується VPython.

Для швидкого ознайомлення дивіться наступні відео YouTube, але майте на увазі, що для поточної версії VPython назва модуля "vpython", а не "візуально", а графічний дисплей відображається на вкладці браузера, а не на оголене вікно. (Для GlowScript VPython ви можете опустити імпорт vpython.)

3D-об'єкти (іспанська версія Objetos 3D від Хав'єра Карро)

Призначення змінної (іспанська версія Asignacion de Variables Хав'єр Карро)

Петлі, що починаються (іспанська версія Comenzando con Bucles Хав'єр Карро)

Петлі та анімація (іспанська версія Bucles y Animacion Хав'єр Карро)

Фактори масштабу (іспанська версія Factores de Escala) Хав'єр Карро)

Налагодження помилок синтаксису

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

Списки, частина 2 (Іспанська версія Список 2 від Хав'єра Карро)

Класичний VPython був створений Девідом Шерером у 2000 році. У 2011 році Девід Шерер та Брюс Шервуд ініціювали розробку GlowScript, подібного середовища програмування, але який працює в браузері. У 2014 році стало можливим використовувати RapydScript, мову програмування, дуже схожу на Python, для підтримки програм VPython у середовищі GlowScript.

Ось огляд проекту, і ось журнал розробок . Ось відкритий код для цього проекту. Існує також технічна документація про середовище GlowScript, включаючи використання JavaScript або RapydScript для своїх програм.

Існує також VPython 7, створений Джоном Коді у 2014 році та постійно розвиваючись Джоном Коді, Рут Чабай, Брюсом Шервудом, Стівом Шпіклейміром та Меттом Крейгом. Він використовує синтаксис GlowScript VPython, але зі стандартним Python, забезпечуючи тим самим доступ до стандартних модулів Python. Детальніше дивіться на vpython.org . Також цікавою є дискусія щодо планів на майбутню еволюцію VPython.

Ця документація описує як GlowScript VPython, так і VPython 7.

Існує серія навчальних посібників GlowScript VPython Ретта Аллайна в контексті прогнозування руху обчислювально на рівні вступного курсу фізики. Використовуючи інструменти на trinket.io, можна легко додати як редагування, так і виконання GlowScript VPython до власних веб-сторінок, і Аллайн у своєму блозі з фізики для журналу Wired показав приклади цього.

Починаємо

Щоб написати програму VPython, увійдіть на сайт glowscript.org.

* Ви побачите речення "Ви ввійшли як <ваше ім'я користувача> і ваші програми тут ." Натисніть тут .

* Клацніть Створити нову програму , яка створить нову програму у вашій папці MyPrograms . (Програми у вашій приватній папці не доступні для інших.) Виберіть назву програми, яка не повинна містити пробілів або підкреслень.

* Внизу рядка GlowScript 2.9 VPython введіть поле () . Клацніть Запустити цю програму, щоб запустити програму. На чорному тлі ви побачите біле поле.

* Використовуйте праву кнопку (або перетягніть ліву кнопку CTRL) миші, щоб обертати камеру, щоб переглянути сцену з різних кутів.

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

* Щоб перемістити панорамування, перетягніть пальцем.

Використання текстового редактора

Ось список комбінацій клавіш для пошуку, заміни тощо. Під час редагування натисніть Ctrl-1 (Cmd-1 на Mac), щоб запустити програму в тому ж вікні. Натисніть Ctrl-2 (Cmd-2 на Mac), щоб запустити програму в окремому вікні, яке дозволяє переглядати програму та її виконання поруч. Якщо ви змінили програму, натисніть Ctrl-2 ще раз на дисплеї редактора, щоб повторно запустити програму з новими змінами. GlowScript використовує текстовий редактор ACE. Оскільки ACE не працює на мобільних пристроях, там використовується більш простий редактор.

Особливо корисним ярликом є Ctrl- / (Cmd-/на Mac). Виберіть один або кілька рядків у своїй програмі та скористайтеся цим натисканням клавіші, щоб увімкнути, чи коментуються ці рядки чи ні. Також виберіть один або декілька рядків і натисніть Tab для відступу або Shift-Tab для скасування.

Рекомендується використовувати браузер Chrome для розробки програм, оскільки він надає найбільш корисні повідомлення про помилки, хоча програми можна писати та запускати у всіх браузерах, у тому числі на смартфонах та планшетах. У деяких випадках програмні помилки помітні, лише якщо натиснути Shift-Ctrl-J для відображення консолі Chrome.

Дозволити іншим запускати ваші програми

Переглядаючи текст вашої програми, натисніть Надіслати цю програму, щоб побачити, як дозволити іншим людям запускати програму. Щоб люди могли запускати вашу програму, посилаючись на неї, програма повинна знаходитись у загальнодоступній папці або експортуватися на ваш власний веб-сайт. Насправді код, доступний на сторінці спільного доступу, можна просто вставити у файл і зберегти з розширенням ".html", а потім можна запустити програму, просто двічі клацнувши файл html.

Описи параметрів, наявних у лівому полі

The basics of Python and VPython. Вступ: Основи Python та VPython.

More on VPython, including making an animation Підручник: Детальніше про VPython, включаючи створення анімації

What the objects look like Малюнки 3D-об’єктів: як виглядають об’єкти

Details of cylinder, box, etc. Start with cylinder for an overview. Виберіть 3D-об'єкт: Деталі циліндра, коробки тощо. Почніть з огляду для циліндра .

Issues that apply to all 3D objects: color, material, etc. Робота з 3D-об’єктами: проблеми, які стосуються всіх 3D-об'єктів: кольору, матеріалу тощо.

Creating/modifying windows; Windows, події та файли: створення/зміна вікон; обробка подій миші/клавіатури; читання/запис файлів

Magnitude, dot and cross product, rotation, etc. Векторні операції: Величина, крапковий та поперечний продукт, обертання тощо.

Making graphs of data. Графіки: Створення графіків даних.

Special functions used in probability calculations. факториал/комбінація: Спеціальні функції, що використовуються при обчисленні ймовірності.

VPython in GlowScript, plus the history of VPython.. Що нового: VPython у GlowScript, а також історія VPython ..

Не забудьте вивчити безліч прикладних програм GlowScript , написаних за допомогою JavaScript, RapydScript або VPython. Параметр VPython заснований на компіляторі RapydScript-NG Python-to-JavaScript. Для більшості програм RapydScript майже такий же, як і Python, але існують відмінності, які можна побачити в документації на RapydScript-NG .

Взагалі модулі Python не можна імпортувати в програми VPython, оскільки GlowScript VPython функціонує в середовищі JavaScript. Однак можна імпортувати "випадковий" модуль Python у програму VPython, що надається інструментом RapydScript-NG, який перетворює Python в JavaScript. Не можна використовувати форму "від випадкового імпорту *", але треба використовувати "імпорт випадкових" або "імпорт випадкових як rr" (або інше ім'я) або "з випадкового рандорту імпорту, випадкового" (або іншого списку функцій).

Для досвідчених програмістів

Як зручність для початківців програмістів, щоб забезпечити все необхідне для початку роботи, VPython за замовчуванням імпортує всі функції VPython та включає стандартні математичні функції, такі як sqrt. Документація написана так, ніби "з імпорту vpython *" були присутні. Також передбачені годинник (), випадковий () і помаранчевий ().

Однак ви можете імпортувати вибірково, як показано в наступних прикладах, сумісних з VPython 7. (Щоб допомогти в перетворенні з Classic VPython, VPython 6, ви можете посилатися на "vis" або "visual" замість "vpython".)

import vpython
import vpython as vp # "vp" is any name of your choice
from vpython import box, color

При використанні форми "з імпорту vpython .....", якщо полотно не вказано, воно додається, оскільки GlowScript VPython не може працювати без полотна.

Для тих, хто використовував Classic VPython

Наразі декілька об'єктів класичного VPython у VPython недоступні: опуклий, грані та кадр. Вершина , трикутник і чотири об'єкти являють собою більш потужну альтернативу граням. Багато застосувань кадру можуть оброблятися складним об'єктом.

Один із способів подолати відмінності - перевірити елементи змінної "version", яка доступна у всіх версіях VPython:

Classic VPython:    version is ['X.Y', 'release']
GlowScript VPython: version is ['X.Y', 'glowscript']
VPython 7:          version is ['X.Y.Z', 'jupyter']
and in VPython 7, the version of the GlowScript
graphics library is given by
                  GSversion is ['X.Y', 'glowscript']

Об'єкти кривої та точок дещо відрізняються від класичного VPython. Зауважте, що тепер список точок кривого об'єкта не є нумерованим масивом, тому для зміни всіх точок потрібен цикл.

Для обробки подій миші не можна використовувати scene.getevent (), але треба використовувати scene.bind (), який доступний у всіх версіях VPython, починаючи з Classic VPython 6. Також доступні: scene.pause () та scene.waitfor (' натисніть ") та пов'язані з ними параметри.

У GlowScript VPython неможливо імпортувати довільні модулі Python, такі як numpy, і будь-яка програма, яка використовує numpy, повинна бути змінена. Однак петлі швидкі на мові JavaScript, на яку компілюються програми GlowScript, тому, якщо ви використовуєте numpy виключно для швидкості маніпулювання масивом, можливо, ви зможете легко та ефективно замінити чистий обчислення на циклі.

Різниця між програмами RapydScript і VPython в контексті GlowScript полягає в тому, що опція VPython імітує важливі елементи синтаксису та семантики програм Classic VPython, тоді як параметр RapydScript реалізує ту саму семантику для 3D-об'єктів, що і програми JavaScript. Наприклад, у програмі RapydScript об'єкт сфери має атрибут розміру, але не має атрибута радіуса, і як і поле, вікно обмеження за замовчуванням сфери є 1x1x1. Крім того, зміна довжини осі в програмі RapydScript не впливає на розмір (за винятком стрілки, яка має спеціальний атрибут axis_and_length), але в програмі VPython, як і в Classic VPython, також змінюється довжина осі змінює довжину об’єкта (перший компонент розміру об'єкта).

GlowScript за замовчуванням обробляє програми VPython так, ніби вони мали наступні заяви на початку програми (які вам не потрібно включати; вони будуть ігноровані):

from __future__ import division, print_function
from vpython import *

GlowScript розглядає 3/2 як 1,5, як у Python 3.x, а не 1, як на мові Python 2.x, а оператор друку повинен мати форму друку Python 3.x ("привіт"), а не Python 2. x форма друку "привіт".

Багато програм, написаних на Classic VPython 6 , працюватимуть у GlowScript VPython або VPython 7 без змін після запуску через програму перетворення, написану на Python. Ця програма перетворює (x, y, z) => вектор (x, y, z) і obj.x => obj.pos.x. Ці зміни необхідні, оскільки GlowScript не розпізнає (x, y, z) як вектор, ні obj.x як скорочення для obj.pos.x. Програма також перетворює display => canvas і gdisplay => graph . Програма також перетворює scene.mouse.getclick () => scene.waitfor ("клацання") , яка працює в обох середовищах.

У GlowScript VPython та VPython 7 ви можете використовувати скорочений "vec" для "vector". Якщо ви хочете використовувати програму GlowScript, що містить "vec" у середовищі Classic VPython, просто додайте вислів "vec = vector" на початку програми.

Кредити

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

У січні 2017 року оригінальний компілятор RapydScript був замінений на RapydScript-NG Ковід Гоялом, що наближається до обробки справжнього синтаксису Python. У серпні 2019 року бібліотеку Streamline було видалено завдяки новим можливостям JavaScript "async" та "очікувати".

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

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

Переклад вірменською мовою Гайка Мелікяна

Переклад з естонської мови Соні Кульмали

Переклад з фінської мови Фіджавана Бренка

Переклад з хінді Натан Зед

Російський переклад Лери Домартіної

Переклад з узбецької мови Руслана Тарасова

Переклад урду Сари Девід