INTERESTING FACTS BLOG

Painting and Sketches

VPython - GlowScript VPython va VPython 7

Asl maqola - VPython - GlowScript VPython and VPython 7

Maqola Muallifi(lari) - Ruth Chabay, David Scherer, and Bruce Sherwood

Manba: http://www.glowscript.org/docs/VPythonDocs/index.html

materialetc

 

3D animatsiya yaratish uchun VPython dan foydalanish

 

VPython bu oddiy 3D-animatsiyalari yaratadigan dasturlar yozishni juda oson qiladi. U o'zining toza dizayni tufayli introduktsion dasturlash kurslarida keng qo'llaniladigan Python dasturlash tiliga asoslangan va u ham fan va biznesda keng qo'llaniladi.

Klassik VPython 2000-yilda David Scherer tomonidan ishlab chiqilgan. 2011-yilda Devid Scherer va Bruce Sherwood GlowScript-ni ishlab chiqish bilan shug'ullangan, ammo bu dastur brauzerda ishlaydi. 2014-yilda GlowScript muhitida VPython dasturlarini qo'llab-quvvatlash uchun Python-ga juda o'xshash bo'lgan RapidScript dasturidan foydalanish mumkin bo'ldi.

Bu erda loyihaning umumiy ko'rinishi va rivojlanish logi. Mana shu loyiha uchun ochiq manba. GlowScript muhiti bilan bog'liq bo'lgan texnik hujjatlar, jumladan sizning dasturlaringiz uchun JavaScript yoki RapidScript ishlatish mumkin.

VPython 7-dan Jon Coady tomonidan 2014-yilda va Jon Coady, Ruth Chabay, Bruce Sherwood, Stiv Spicklemire va Matt Kreygning rivojlanishi davom etmoqda. GlowScript VPython sintaksisini ishlatadi, lekin standart Python bilan standart Python modullariga kirishni ta'minlaydi. Tafsilotlar uchun vpython.org ga qarang. Shuningdek, VPitonning kelajakdagi evolyutsiyasi bo'yicha rejalar haqida ham qiziqish mavjud.

Ushbu hujjatlar GlowScript VPython va VPython 7 ni ham ochib beradi.

Tez kirish uchun quyidagi YouTube videolariga qarang, ammo VPythonning joriy versiyasi uchun modul nomi "vpython" emas, balki "ingl." Emas, va grafiklar ekrani brauzer ko'rinishida emas, balki yalang'och oyna. (GlowScript VPython uchun, vpython import qilishni rad etishingiz mumkin.)

3D obyektlar (Javier Carroning Ispaniyalik versiyasi Objetos 3D )

Argumentlar belgilash ( Asignación de Variables Ispancha versiya Javier Carro tomonidan)

Beginning Loops (Ispan tilidagi versiyasi Comenzando con Bucles Javier Carro tomonidan)

Kishanlar va Animatsiya (Ispancha versiya Bucles y Animación Javier Carro tomonidan)

O'lchov omillari (Ispancha versiya Factores de Escala Javier Carro tomonidan)

Sintaksisi xatolar nosozliklarni

Ro'yxatlar, 1-qism

Ro'yxatlar, 2-qism

Rhett Allain tomonidan tanqidiy fizika kursi darajasida hisoblashni hisobga oladigan tarkibda GlowScript VPython o'quv qo'llanmalari mavjud. Trinket.io da vositalarni qo'llash GlowScript VPython-ni o'z veb-sahifalariga qo'shishni osonlashtiradi va Alleyning Simli jurnalidagi fizika blogida bunga misollar keltirilgan.

Ishni boshlash

VPython dasturini yozish uchun glowscript.org saytiga kiring.

* Siz "Siz o'zingizning foydalanuvchi ismingiz" sifatida kiritilgan va sizning dasturlaringiz bu erda "degan jumlani ko'rasiz." Bu yerni bosing.

Yangi dastur yaratish-ni bosing. ( Shaxsiy papkangizdagi dasturlar boshqalarga kirib bo'lmagani sababli dasturni yaratmasdan oldin Davlat yorlig'ini bosishingiz mumkin). Dasturning nomini bo'shliqlar yoki pastki chiziqlardan iborat bo'lmaslik uchun tanlang.

GlowScript 2,7 VPython liniyasi ostidagi yozing () qutisini ()Dasturni ishga tushirish uchun ushbu dasturni ishga tushirish-ni bosing. Siz qora fonda oq quti ko'rasiz.

* Turini turli burchaklardan ko'rish uchun kamerani aylantirish uchun sichqonchaning o'ng tugmasini (yoki CTRL-drag chap tugmasi) foydalaning.

* Masshtabni kattalashtirish va ishlatish uchun ikkita tugma yoki ALT / OPTION-drag yoki sichqonchani scrollwheel dan foydalaning. Sensorli ekran: surish yoki ikkita barmoqni aylantirish; Kattalashtirish uchun cho'zish / kengaytirish. 

Matn muharriridan foydalanish

Bu erda topish, o'zgartirish va hokazo. Uchun klaviatura yorliqlarining ro'yxati keltirilgan. Tahrir paytida, dasturni bir xil oynada ishga tushirish uchun Ctrl-1 (Macda Cmd-1) tugmasini bosing.Dasturingizni alohida oynada ishga tushirish uchun Ctrl-2 (Macda Cmd-2) tugmasini bosibdasturni va uning bajarilishini yonma-yon ko'rishingiz mumkin. Agar siz dasturni o'zgartirsangiz, Ctrl-2 tugmasini bosib , muharrir ekrandan yangi dastur bilan dasturni qayta ishga tushiring.GlowScript ACE matn muharriri foydalanadi. ACE mobil qurilmalarda ishlamayotganligi sababli u erda oddiyroq muharrir ishlatiladi.

Ayniqsa foydali yorliq Ctrl- / (Cmd- / Mac-da). Dasturingizda bir yoki bir nechta chiziqni tanlang va ushbu satrlarni sharhlash yoki o'chirmaganligini o'zgartirish uchun ushbu tugmani bosib turing.Bundan tashqari, bir yoki bir nechta satrni tanlang va Tab tugmasini bosib, yoki Shift-Tab-ni bekor qilmang.

Dasturlarni ishlab chiqish uchun Chrome brauzeridan foydalanish tavsiya etiladi, chunki u eng foydali xato xabarlarini ta'minlaydi, ammo dasturlarni barcha brauzerlarda, jumladan, smartfon va planshetlarda yozish mumkin. Ba'zi hollarda dastur xatolar faqat Chrome konsolini ko'rsatish uchun Shift-Ctrl-J tugmachasini bosganingizda paydo bo'ladi.

Boshqalar sizning dasturlarni boshqarishga ruxsat berish

Dasturingiz matnini ko'rayotganda ushbu dasturni boshqa foydalanuvchilarning bilan ulashing qanday ishlatishini ko'rish uchun almashish- ni bosing. Odamlar sizning dasturingizga bog'lanish orqali ishlashi uchun dastur umumiy papkada bo'lishi yoki o'z veb-saytiga eksport qilinishi kerak.Haqiqatan ham, ulash sahifasida mavjud bo'lgan kod oddiygina "fayli" ga joylashtiriladi va ".html" kengaytmasi bilan saqlanadi va keyin siz oddiygina HTML-faylni ikki marta siltab, dasturni ishga tushirishingiz mumkin.

 

Chap chegaradagi mavjud variantlar tavsifi

Kirish: Python va VPython asoslari.

Qo'llanma: VPython haqida batafsilroq, shu jumladan, animatsiya qilish

3D obyektlarning suratlari: Ob'ektlarning qanday ko'rinishi

3D obyektni tanlang: silindrning tafsilotlari, quti va boshqalar. Umumiy ma'lumot uchun tsilindr bilan boshlang.

3D obyektlar bilan ishlash: Barcha 3D obyektlarga tegishli bo'lgan ranglar, materiallar va boshqalar.

Windows, hodisalar va fayllar: Windows yaratish / o'zgartirish; sichqoncha / klaviatura voqealarini boshqarish; fayllarni o'qish / yozish

Vektorli operatsiyalar: kattalik, nuqta va o'zaro faoliyat mahsulot, aylanish va boshqalar.

Tasvirlar: ma'lumotlarni grafikalar qilish.

Factorial / combin: ehtimollik hisob-kitoblarida ishlatiladigan maxsus funksiyalar.

Qanday yangiliklar: VPython ning GlowScript, plus VPython tarixi.

JavaScript, RapidScript yoki VPython yordamida yozilgan ko'plab GlowScript misol dasturlarini o'rganib chiqing. VPython parametri RapidScript-NG Python-to-JavaScript kompilyatoriga asoslangan. Ko'pgina dasturlar uchun, RapidScript Python bilan deyarli bir xil, ammo RapidScript hujjatida ko'rinadigan farqlar mavjud.

Umuman, Python modullari VPython dasturlariga kiritilmaydi, chunki GlowScript VPython JavaScript muhitida ishlaydi. Biroq, Python "tasodifiy" modulni Python-ni JavaScript-ga o'zgartiradigan RapidScript-NG vositasi tomonidan taqdim etilgan VPython dasturiga import qilish mumkin (bir formdan "tasodifiy importdan *" foydalana olmaydi, lekin "importni tasodifiy" yoki "import qilish" tasodifiy import randint, tasodifiy "(yoki boshqa funktsiyalar ro'yxati) kabi tasodifiy tanlangan.

E'tibor

O'zgaruvchan ism sifatida "kutish" yoki "_" dan foydalanmang. Barcha GlowScript tillari (VPython, RapydScrpt, JavaScript) derleme jarayoni uchun maxsus signal sifatida "kutish" yoki "_" dan foydalaning. Ushbu signal siz uchun kerakli joyga qo'shiladi.

Tajribali dasturchilar uchun

Ajam dasturchilarga ishga tushirish uchun kerak bo'lgan hamma narsalarni taqdim etish uchun qulaylik sifatida, VPython barcha VPython xususiyatlarini import qiladi va sqrt kabi standart matematik vazifalarni o'z ichiga oladi. Hujjatlar, "vpython import *" dan foydalangan holda yozilgan. Bundan tashqari, soat (), tasodifiy (), va aranj () mavjud.

Siz VPython 7 bilan mos keladigan quyidagi misollarda ko'rsatilgandek tanlab olishingiz mumkin. (Classic VPython, VPython 6 ga o'tishga yordam berish uchun "vpython" o'rniga "vis" yoki "visual" ga murojaat qilishingiz mumkin.)

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

Shaklni "vpython import ....." dan foydalanganda, agar kvadrat belgilanmagan bo'lsa, GlowScript VPython tuvali ishlamasligi mumkin.

 

Klassik VPytonni ishlatganlar uchun

VPython-da bir nechta klassik VPython moslamalari hozirda mavjud emas: konveks, yuzlar va ramkalar. Ob'ektlarning vertexuchburchagi va to'rtburchaklari yuzlar uchun yanada kuchli muqobildir. Ramkalarning ko'plab ilovalari aralash ob'ekt bilan ishlov berish mumkin.

Variantlarni bartaraf etishning bir usuli VPythonning barcha versiyalarida mavjud bo'lgan "versiya" o'zgaruvchilarining elementlarini tekshirishdir:

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']

Chiziq va nuqtali narsalar Klassik VPythondan bir oz farq qiladi. Endi egri ob'ektidagi nuqta ro'yxati raqamli qator emas, shuning uchun barcha nuqtalarni o'zgartirish uchun pastadir kerak.

Sichqoncha voqealarini boshqarish uchun scene.getevent () funktsiyasidan foydalana olmaysiz, lekin VPythonning barcha versiyalarida Classic VPython 6 bilan boshlangan scene.bind () funktsiyasidan foydalaning. Shuningdek, scene.pause () va scene.waitfor (' bosing) va tegishli variantlarni tanlang.

GlowScript VPython da numpy kabi o'zboshimchalik bilan Python modullarini import qilish mumkin emas va numpy ishlatadigan har qanday dasturni o'zgartirish kerak bo'ladi. Biroq, loops GlowScript dasturlari kompilyatsiya qiladigan JavaScript tilida tezroq bo'ladi, shuning uchun agar numpy faqat qatorni manipulyatsiya tezligi uchun foydalanayotgan bo'lsangiz, siz lopy hisoblashni bir pastadir bilan osongina va samarali tarzda o'zgartirishi mumkin.

GlowScript kontekstidagi RapidScript va VPython dasturlari orasidagi farq VPython opsiyasi Classic VPython dasturlarining sintaksisi va semantikasining muhim elementlarini takrorlaydi, shuningdek, RapidScript parametr JavaScript dasturlari kabi 3D moslamalarni uchun bir xil semantikani amalga oshiradi. Misol uchun, RapidScript dasturida shar obyekti o'lchamli atributiga ega, ammo radius xususiyati yo'q, va quti kabi, sohaning standart cheklov qutisi 1x1x1 dir.Bundan tashqari, RapidScript dasturida eksa uzunligini o'zgartirish o'lchamiga ta'sir qilmaydi (maxsus axis_and_length xususiyati bo'lgan o'qdan tashqari), lekin VPython dasturida, Klassik VPython da bo'lgani kabi, eksa uzunligini o'zgartiradi ob'ektning uzunligini o'zgartiradi (ob'ektning o'lchamining birinchi komponenti).

GlowScript dasturida VPython dasturlari, dastur boshida quyidagi so'zlarni (ular kiritishni hojat qoldirmaydi, ular e'tiborga olinmaydi) kabi ishlaydi:

from __future__ import division, print_function
from vpython import *

GlowScript Python 2.x tilida 3/2 ni 1.5 da Python 3.x da emas, balki 1 va Python 2.x tilida ko'rib chiqadi va bosim bayonoti Python 2 o'rniga Python 3.x bosib chiqarish formatini ("salom") olish kerak. x formati "salom".

Klassik VPython 6 da yozilgan dasturlarning ko'pchiligi GlowScript VPython yoki VPython 7 da Pythonda yozilgan dasturni ishga tushirgandan so'ng o'zgartirilmaydi. Ushbu dastur (x, y, z) => vector (x, y, z) va obj.x => obj.pos.x ni o'zgartiradi. Ushbu o'zgarishlarni bajarish kerak, chunki GlowScript uchun qisqartma sifatida (x, y, z) vektor  yoki  sifatida obj.x tanimaydi obj.pos.x. Dastur shuningdek, display => canvas va gdisplay => graph o'zgartiradi. Dastur shuningdek, ikkala muhitda ishlaydigan scene.mouse.getclick() => scene.waitfor('click') o'zgartiradi.

GlowScript VPython va VPython 7 da siz "vekt" uchun shablonni ishlatishingiz mumkin. Klassik VPython muhitida "vec" ni o'z ichiga olgan GlowScript dasturidan foydalanmoqchi bo'lsangiz, dasturning boshida "vec = vector" ifodasini qo'shing.

Kreditlar

Salvatore di Dio o'zining RapidGlow eksperimentida namoyishga chiqdi 
http://salvatore.pythonanywhere.com/RapydGlow ) 
Qanday qilib u GlowScript grafikalar bilan RapidScript Python-to-JavaScript-ni kompilyatoridan foydalanishga muvaffaq bo'ldi. Bu glowscript.org da VPython (vpython.org) API ilovasini ilhomlantirdi. Operatorning ishiga asosan operatsion yukini yuklab olish uchun papercomp.js faylini taqdim etdi 
Jürg Lehni (PaperScript: http://scratchdisk.com/posts/operator-overloading ). 
Shuningdek, u operatorni haddan tashqari yuklashga va transform-all.js faylida sinxron kod yozishni qo'llab-quvvatladi. 
Bruno Jouxer (Streamline: https://github.com/Sage/streamlinejs ), va 
Marijn Haverbeke (Acorn.js: https://github.com/marijnh ). 
VPython API-ni brauzerda qo'llab-quvvatlashi ishning bajarilishi orqali amalga oshirilishi mumkin 
Aleksandr Tsepkov (RapidScript: https://github.com/atsepkov/RapydScript ) va 
Charlz qonuni (brauzerga asoslangan RapidScript: https://github.com/charleslaw/RapydScript_web ).

Yanvar 2017 yilda original RapidScript kompilyatori Kovid Goyal tomonidan tayyorlangan RapidScript-NG bilan almashtirildi.

GlowScript loyihasi 2011 yilda David Scherer va Bruce Sherwood tomonidan ishlab chiqilganida, Scherer o'sha paytda mavjud bo'lgan kutubxonalardan foydalanib, operatorni haddan tashqari yuklash va sinxron kodni amalga oshirdi. 2015 yilda yangi kutubxonalarga o'tish kerak bo'ldi, chunki ba'zi brauzerlarda kompilyatsiya muvaffaqiyatsiz yakunlandi; Ushbu yangilanishda Salvatore di Dio muhim yordam berdi. 2017 yilning yanvarida operatorni ortiqcha yuklaydigan mashinalar yangilandi.

VPython hujjatlari Rut Chabay, David Scherer va Bruce Sherwood tomonidan ishlab chiqilgan.