MAXScript výukový kurz



Podobné dokumenty
EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

MAXScript výukový kurz

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PHP tutoriál (základy PHP snadno a rychle)

Programovací jazyk Pascal

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Paměť počítače. alg2 1

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Algoritmizace a programování

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

2 Datové typy v jazyce C

Algoritmizace a programování

Sada 1 - PHP. 03. Proměnné, konstanty

Vstupní požadavky, doporučení a metodické pokyny

6. Příkazy a řídící struktury v Javě

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Základy PERLu snadno a rychle

VISUAL BASIC. Práce se soubory

5 Přehled operátorů, příkazy, přetypování

Úvod do programovacích jazyků (Java)

8 Třídy, objekty, metody, předávání argumentů metod

Pointery II. Jan Hnilica Počítačové modelování 17

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

Sada 1 - Základy programování

Datové typy strana 29

Inovace bakalářského studijního oboru Aplikovaná chemie

6 Příkazy řízení toku

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Pole a kolekce. v C#, Javě a C++

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Maturitní otázky z předmětu PROGRAMOVÁNÍ

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

6. blok část C Množinové operátory

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Programování v C++, 2. cvičení

Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Základy PHP. Josef Podstata. KTE/IZTT - Zpracování textu, tabulek a prezentací. Univerzita Palackého v Olomouci

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Part 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Jazyk PL/SQL Úvod, blok

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek

ANOTACE vytvořených/inovovaných materiálů

Souhrn Apendixu A doporučení VHDL

Kurz LSL skriptování. Shiny Iceberg 2009

4. Jednoduché výpočty

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Formátové specifikace formátovací řetězce

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

Tematický celek 03 - Cvičné příklady

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Algoritmizace a programování

Mgr. et Mgr. Jan Petrov, LL.M. Ph.D. BYZNYS A PRÁVO

Algoritmizace a programování

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

Objektově orientované programování

Sada 1 - Základy programování

15. Projekt Kalkulačka

10 Algoritmizace Příklad 2 Word 2007/ VBA

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Racionální čísla, operátory, výrazy, knihovní funkce

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Programování v jazyce JavaScript

DUM 3 téma: Podmínky a Globální proměnné

Vícerozměrná pole. Inicializace pole

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Prezentace a vysvětlení programového prostředí NXC

Úvod do programovacích jazyků (Java)

PHP. 1. Úvod do PHP. 2. Základy PHP

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Tabulka obsluhovaná kódem VBA

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

POČÍTAČE A PROGRAMOVÁNÍ

Základy programování (IZP)

Proměnné a parametry. predn_08.odt :00:38 1

Výčtový typ strana 67

Transkript:

MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1

OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM... 9 Jan Melichar (aka JME) strana 2

Upozornění Tento materiál je určen výhradně pro soukromé výukové účely. Nesmí být v žádném případě použit ve spojení s komerční činností, prodáván, šířen v pozměněné podobě či jinak modifikován. Jan Melichar (aka JME) strana 3

Úvod Vážení čtenáři, vítám vás u čtvrtého pokračování seriálu o jazyce a nástroji MAXScript, tentokrát nazvaného Jazyk MAXScript, část první. Dnes se podíváme již na samotný jazyk MAXScript (dále jen MXS). Blíže se budeme zabývat základními příkazy MXS, operátory, proměnnými a naši pozornost soustředíme také na pole (arrays). Jan Melichar (aka JME) strana 4

Základní příkazy Pro začátek práce s MXS je vhodné znát několik základních příkazů; na valnou většinou z nich při psaní vlastních skriptů určitě narazíte. Zde jsou: příkaz pro vyčištění okna Listener window: clearlistener() příkaz pro výběr všech objektů ve scéně: max select all příkaz pro odznačení všech objektů (počet vybraných objektů: 0): clearselection() příkaz pro odstranění vybraných objektů: max delete symbol dolaru ($) slouží k odkázání na určitý objekt: $nějaký_objekt příkaz pro vložení jiného - skriptu (table.ms): include "table.ms" příkaz pro výpis řetězce uzavřeného do uvozovek: print "Hello world!" jednořádkový komentář - za zdvojenou pomlčkou: if ( chboxkeepratio.state == true ) then -- text - komentář, který není součástí vlastního kódu více řádkový komentář - uzavřený mezi znaky '/*' a '*/' - používá se např. pro zápis úvodních - autorských informací o příslušném skriptu na začátku kódu: /* Script for creating a table Author: autor Email: email Datum: August 11, 2005 */ Příkaz pro vypsání libovolného textu (v uvozovkách) do okna: messagebox "Text, který se objeví v nově otevřeném okně" příkaz pro otevření souboru: max file open příkaz pro zobrazení (znovu zviditelnění) všech dosud schovaných (hidden) objektů ve scéně: Jan Melichar (aka JME) strana 5

max unhide all příkaz pro vyrenderování aktuální scény: max quick render Operátory Základní matematické operátory Syntaxe jazyka MXS se nijak neliší od syntaxe jiných jazyků. I zde se tedy můžeme setkat (a jistě se setkáme :)) se základními matematickými operátory pro sčítání ('+'), odečítání ('-'), násobení ('*'), dělení ('/'). Přitom, operátory pro násobení a dělení mají větší prioritu než operátory pro sčítání a odečítán s tím, že patřičným uzávorkováním můžeme prioritu změnit. Za zmínku možná stojí, že MXS Listener může krom jiného sloužit také jako pomocná kalkulačka :). Dalšími základními matematickými operátory jsou tyto: operátor pro porovnání proměnných ('=='), nerovnítko (!=), větší ('>'), menší ('<'), větší a rovno ('>='), menší a rovno ('<='). Proměnné Základní typy proměnných Mezi základní typy proměnných lze v MXS zařadit následující: Float Integer String Time Double (nově v 3ds Max 9) Integer64 (nově v 3ds Max 9) IntegerPtr (nově v 3ds Max 9) Přiřazování proměnných Základní práce s přiřazováním proměnných není v MXS nijak složitá. Podobně jako v jiných programovacích jazycích je hodnota napravo od rovnítka přiřazována do názvu proměnné nalevo od rovnítka. Tedy např.: MujPrvniRezetec = "Hello World" Obsah proměnné MujPrvniRetezec pak můžeme libovolně vypsat: MujPrvniRezetec /* výsledeek: Hello World */ Podobně můžeme proměnné využívat pro přiřazování číselných hodnot. Např.: c = sqrt(9)^3 Jan Melichar (aka JME) strana 6

Důležité: Nachází-li se na řádku pouze jeden příkaz, není nutno za něj psát středník. Při zápisu více příkazů na jeden řádek je však nutné každý takovýto příkaz ukončit středníkem! Pozn: Mezi proměnné MXS patří také tzv. globální a lokální proměnné. Ty si však vzhledem ke svému většímu rozsahu a návaznosti na pokročilejší konstrukty, jako jsou např. metody či třídy, zaslouží své místo v příštím, tj. pátém díle tohoto seriálu. Pole Pole je speciální uspořádaná datová struktura, v níž každý její prvek může být jiného typu a nabývat určité hodnoty. Ke každému takovému prvku v poli přistupujeme pomocí indexu, resp. pořadí prvku v tomto poli. Např. Deklarace pole /* deklarace pole s hodnotami 10, 20 a 30: */ #(10, 20, 30) /* deklarace pole s hodnotami 10, 20, 30 a jeho přiřazení do proměnné "pole": */ pole = #(10, 20, 30) /* chceme vypsat druhý prvek v poli: */ pole[2] /* výsledek: 20 */ Budeme-li chtít určitý prvek v poli změnit, nahradíme jeho hodnotu opět přes index, a to následovně: /* přepsání třetího prvku pole na 120: */ pole[3] = 120 /* výpis pole: */ pole /* výsledek: #(10, 20, 120) */ Jednotlivé prvky pole mohou tedy být různého typu. Pole můžeme tedy deklarovat např. takto: x = 180; pole2 = #("Hodnota cos x je", cos x) /* výsledek: #("Hodnota", "cos x je", -1) */ Jistě jste si všimli, že jsme v deklaraci pole použili proměnnou x. Té je třeba ještě před vlastní deklarací pole přiřadit určitou hodnotu. Operace s prvky pole Do deklarovaného pole lze přidávat další prvky. Lze to provést několika příkazy. Jedním z nich je příkaz insertitem. Mějme tedy pole deklarované takto: Jan Melichar (aka JME) strana 7

pole3 = #(10, 20, 30) insertitem 40 pole3 4 insertitem 50 pole3 2 Příkazem insertitem jsme vložili hodnotu 40 do pole s názvem pole3 na pozici 4 a hodnotu 50 na pozici 2. Výsledkem tedy bude: pole3 /* výsledek: #(10, 50, 20, 30, 40) */ Budeme precizní a řekneme si, že se nám pořadí prvků příliš nevyhovuje. Co s tím? Prvky setřídíme. K tomuto účelu použijeme příkaz sort "pole". Zápis tedy bude následující: sort pole3 /* výsledek: #(10, 20, 30, 40, 50) */ Dalšími příkazy pro vložení prvku do pole jsou např.: join nebo appedifunique, což je nový příkaz v 3ds Max 2008. Rozdíl mezi příkazem insertitem a appendifunique spočívá (jak již sám příkaz napovídá) v kontrole, zda se prvky v poli neopakují. Zatímco příkazem insertitem můžeme do pole přidat prvek, který se v poli již vyskytuje, při použití příkazu appendifunique bude vrácena hodnota false a další prvek do pole přidán nebude. Duplicitní prvky pole lze odstranit pomocí příkazu makeuniquearray "pole". Jakýkoli prvek lze z pole odstranit pomocí příkazu deleteitem "pole" "pozice". Tedy například odstraníme hodnotu, jejíž index se nachází na pozici 3. Odstraněna tedy bude hodnota 30. deleteitem pole3 3 /* výsledek: #(10, 20, 40, 50) */ Vícerozměrná pole Vícerozměrná pole se od jednorozměrných liší v tom, že ke stávající "řadě" řadě prvků (v tomto případě prvky (1, 2, 3)) je přidána nová "řada", a taktéž v přidaném indexu, který je při výpisu určitých prvků pole vložen do nových hranatých závorek. Deklarace takovéhoto pole může vypadat následovně (nově vložený rozměr-řada sestává z prvků (10, 20, 30)): pole4 = #(#(1, 2, 3), #(10, 20, 30)) pole4[2][1] /* výsledek: 10; byla vrácena hodnota prvního prvku (indexu) z druhého rozměru pole */ Jan Melichar (aka JME) strana 8

Závěrem Příští díl tohoto kurzu bude zaměřený na základní větvící příkazy, cykly, funkce a třídy a objekty, a taktéž již zmíněné globální a lokální proměnné. Literatura: Autodesk 3ds Max 2008 MAXScript Reference Jan Melichar (aka JME) strana 9