2010年03月
Sun Mon Tue Wed Thu Fri Sat
 123456
78910111213
14151617181920
21222324252627
28293031   

数学 アーカイブ

[as3.0][数学] 極座標変換

2008年02月10日

まずは、数学的にもactionscript的にも難しくないものからやっていきたいと思います。
数学は高校数学の三角関数のみ。しかも、メソッドがすでに用意されていました。

今回やりたいことは、グラフィックスをステージ上に配置することです。ただ、配置するだけならば、x,yを指定してあげれば配置することができます。しかし、そのグラフィックスを円にそって並べるにはどうしたらよいか、ということです。x,yを指定していくのは、非常に大変です。そこで、極座標(Polar coordinates system)という概念を取り入れると、容易に配置していくことができます。

はじめにその極座標について説明したいと思います。

極座標とは、n次元のユークリッド空間Rnで定義され、一つの動径rによって偏角θからなる座標系です。今回は、2次元を扱うので、ユークリッド空間R2です。ユークリッド空間とは、我々が生活している空間のことを言います。また、非ユークリッド空間という空間もあります。

極座標には、円座標(Circular Polar Coordinates)、球座標(Spherical Polar Coordinates)などがあります。今回は、円座標を用います。また、ユークリッド空間R3では球座標を用いて立体的な表現をすることができます。

上図を用いて説明していきます。
rは円の半径、θ(シータ)は、x軸と半径rの間の角度のことです。

ここで、高校数学の時に使用した、sin、cosの定義の式変形をして、使いやすいように式を作ってあげます。

上の式を見てみると、rとθがわかれば、x,yがわかるということがわかります。
sin,cosの計算式は、Mathクラスに含まれています。
rを固定してあげて、θをずらしていけば、rを半径とした円にグラフィックスを配置していけるということがわかります。

実は、上でも言ったようにこの極座標を自動的に生成してくれる便利なメソッドがありました。
polarというメソッドで、詳しくは下のリンクからどうぞ。
Point - ActionScript 3.0 コンポーネントリファレンスガイド

半径rと角度θを入れてあげるとPointにしてx,y(直交座標)として返してくれます。

これを、用いて簡単にサンプルを作ってみました(突っ込みどころが多いです)





ソースはこちら


package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;

//Class
public class test extends Sprite {

//Proparity
public var myContainer:Sprite;

//Constructor
public function test(container:Sprite):void {
myContainer = container;
main();
}

//function
private function main():void {

var radius:Number = 70;//半径を設定
var angplus:Number = 10;//何度ごとに配置するか

for (var n=0; n<3; radius += 50,n++) {
for (var i=0; i<360; i += angplus) {
makeCircle(radius,i);
}
}
}
//function
function makeCircle(r,angle):void {

var radian:Number = angle * Math.PI/180;//ラジアンに変換
var translatePoint:Point = Point.polar(r,radian);//極座標変換したものをポインタへ
var nx = translatePoint.x + 275;//x軸の中心へ
var ny = translatePoint.y + 200;//y軸の中心へ

var shape = new Shape();
myContainer.addChild(shape);

shape.graphics.lineStyle(1, 0x000000, 1.0);// 線のスタイル指定
shape.graphics.beginFill(0x000000, 1.0);// 面のスタイル設定
shape.graphics.drawCircle( nx, ny, 5);
}
}
}

今回は、球座標の2次元でしたが、3次元に拡張して、球座標でグラフィックスを配置してやるともっとヴィジュアル的に美しいものができそうです。グラフィックスを写真にしてあげて、xmlで読み込んでやると楽しそうです。

[BOOK][数学] 数学アート

2008年03月04日

シンメトリー
シンメトリー
posted with amazlet on 08.03.04
ハンス ヴァルサー Hans Walser 蟹江 幸博
日本評論社 (2003/09)
売り上げランキング: 476477


数学的なものを取り入れたアートを作りたい方におすすめ。数学書なのですが、アプローチの仕方がアートよりです。シリーズ化していてほかに黄金分割があります。これもいっしょに持ってるとよいかもしれません。もうすでにプログラムとして完成されている数学的な物でなく、kの本を参考にして自分で新たに数学プログラミングを作ってはいかがでしょう。

BOOKカテゴリには、自分の気になった本を入れていこう。この本いいよと紹介するフリをして(笑)

自主ゼミのウェブサイトです

INSIDE?

INSIDE shota sawada designとは,沢田翔太のブログベースのウェブサイトです。ここでは、自分の考え(思考の外界化),プロジェクトの進行状況や展覧会などに行った記録(行為についての省察)、また研究成果などを書いています。

現在,公立はこだて未来大学4年 システム情報科学部 情報アーキテクチャ学科 情報デザインコース在籍.現在,寺沢研究IDSにて研究活動中.
インタフェースデザインと教育/学習,モデルに興味を持ち,日々,活動しています.

最近のエントリー


このブログのフィードを取得

今読んでる本

tyr777の今読んでる本

リンク

未来大関係

アクセス解析

カテゴリ

アーカイブ