オブジェクトとは

Glowscript VPython を使って、オブジェクトの使い方を説明します。

Object(オブジェクト)とは

オブジェクトは、変数や関数をひとまとめにしたものです。

VPythonの『box()』や『sphere()』関数は、3Dオブジェクトを作る関数です。 boxは、ハコとして画面に表示されます。sphere はタマとして表示されます。

3Dオブジェクトの表示位置は、pos=vec(左右, 上下, 前後) で指定します。

下のプログラムで、数値を変えて、【▶Run】ボタンでプログラムをうごかすと、表示位置が変わるのを確認しましょう。

英語のbox(ボックス)は、箱(はこ)の意味です。

英語のsphere(スフィア)は、球体(きゅうたい)の意味です。

英語のposition(ポジション)は、位置(いち)の意味です。

オブジェクト参照(さんしょう)とドット演算子(えんざんし)

プログラムで、boxオブジェクトの表示位置をかえるには、どうしたら良いでしょうか?

まず、オブジェクトを作成したときに戻り値を、下の『obj1』~『obj4』のように、変数に入れます。 このような変数を「オブジェクト参照」あるいは「参照」といいます。

オブジェクト参照に、ドット演算子『 . 』をつけて、オブジェクトの中の変数や関数にアクセスすることができます。

プログラムを読むときは『 . 』を『の』とおきかえて読むと、理解しやすいです。

オブジェクトのなかのオブジェクト

オブジェクトの中に、さらにオブジェクトを入れることができます。

box オブジェクトの「pos」変数には、x, y, z の3つを1つにまとめたvecオブジェクトが入っています。

Scratchの「スプライト」を使ったオブジェクトの説明: https://scratch.mit.edu/projects/674046818

アニメーションしてみる

『sleep()』関数は、プログラムを一時停止します。

VPythonで sleepをつかうと、3Dグラフィックスを動かすアニメーションがつくれます。

sleep(0.02) # プログラムを 0.02 秒とめる


sleep() のかわりにrate() で、フレームレートを指定しても同じです。

rate(50) # 1秒間に50フレーム描画する

メソッド

オブジェクトの中にある関数は、かっこうよく「メソッド」とよびます。

box オブジェクトには、 rotate(ローテイト)= 回転(かいてん)というメソッドがあります。

オブジェクトの変数は、class(クラス)で定義するのが基本ですが、あとから、好きにふやすことができます。