タグ

ブックマーク / yamasv.blog92.fc2.com (13)

  • stage.stageWidth│miscellaneous

    たまたまSafariで過去の記事を見ていて、いくつかのコンテンツが正しく表示されていないのに気づいた。 調べてみると、stage.stageWidth/stageHeightの戻り値がSafariの時だけおかしい。 stage.stageWidthの値をテキストフィールドに表示するだけのプログラムを書いてみたが、FireFoxとOperaでは200と表示されるのにSafariだけ0と表示される。(全て同じIntel mac PC) 別なWindows PCのIE6とFirefoxとOperaでもちゃんと200と表示される。 何がわるいんでしょう。 package { import flash.display.*; import flash.text.*; [SWF(width="200", height="50", backgroundColor="#e0")] public class

    nilab
    nilab 2007/12/28
    miscellaneous stage.stageWidth : stage.stageWidth/stageHeightの戻り値がSafariの時だけおかしい
  • [ActionScript 3.0] 線分の交差判定│miscellaneous

    他の線分と交差している線分は赤、交差していない線は青で表示。 線分を延長した直線同士の交点をまず求め、その交点が互いの線分の両端の内側にあるかをベクトルの内積を使って求めている。 package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; [SWF(width="500", height="500", framerate="30", backgroundColor="#ffffff")] public class LineCross extends Sprite { private var balls:Array; private var WIDTH:int = 500; private var HEIGHT:int = 500; private va

    nilab
    nilab 2007/12/28
    miscellaneous [ActionScript 3.0] 線分の交差判定
  • miscellaneous [ActionScript 3.0] [] 2.0 GreatWhite

    PaperVision3D 2.0の最小サンプル package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.Display

    nilab
    nilab 2007/12/28
    miscellaneous [ActionScript 3.0] PaperVision3D 2.0 GreatWhite : PaperVision3D 2.0の最小サンプル
  • [ActionScript 3.0] クォータニオンを使った球面線形補間│miscellaneous

    移動元をP1、移動先をP2、 P1とP2の角をwとすると t(0~1)での位置は p(t) = (sin(1-t)w / sinw)P1 + (sin(tw)/sinw)P2 で表される。 ↓のウィンドウをクリックすると (50,0,50)から(0,20,0)にボールが移動する軌跡が表示されます。 SphericalLinearInterpolation.as package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.ui.*; import flash.utils.*; [SWF(width="400", height="300",backgroundColor="0xffffff")] public class SphericalLinearInterpolatio

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] クォータニオンを使った球面線形補間
  • [ActionScript 3.0]渋滞シミュレーション│miscellaneous

    ひとつの出口に向かう車の渋滞シミュレーション。 緑のボタンを押すと開始されます。 ランダムに配置された30個の矢印が、互いにぶつからないように一つの出口に向かっていきます。 アルゴリズムが単純なので、行儀がいいんだが頭悪いんだがよくわからない動きをしているものが見受けられます。 全ての他車を走査して距離計算を行っている部分のアルゴリズムは改良の余地あり。 package { import flash.display.*; import flash.events.*; import flash.text.*; [SWF(width="400", height="400", backgroundColor="#ffffff")] public class Traffic extends Sprite { private var _cars:Array = new Array(); privat

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0]渋滞シミュレーション
  • [ActionScript 3.0] PaperVision3Dでルービックキューブ│miscellaneous

    黒い矢印をクリックして回転。 RubikCube.as package { import flash.display.*; import flash.events.*; import flash.utils.*; import org.papervision3d.core.*; import org.papervision3d.scenes.*; import org.papervision3d.objects.*; import org.papervision3d.cameras.*; import org.papervision3d.materials.*; [SWF(width="400", height="400", backgroundColor="#ffffff")] public class RubikCube extends Sprite{ private var canv

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] PaperVision3Dでルービックキューブ
  • [ActionScript 3.0] 画像の折り曲げ│miscellaneous

    ↑の青い線の近くにマウスを動かしてみてください。 package{ import flash.display.*; import flash.geom.Rectangle; import flash.geom.Point; import flash.events.*; import flash.utils.*; [SWF(width="500", height="300",backgroundColor="0xffffff")] public class Distort extends Sprite{ private var bitmapSlices:Array = new Array(); private var numOfSlices:int = 100; private var rad:Number = 0; // camera position private var camera

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 画像の折り曲げ
  • [ActionScript 3.0] 行列式を利用した多角形と点の位置関係│miscellaneous

    前回は三角形だったが、四角形以上の多角形でもまったく同じようにして判定できる。 (ただし、凸な多角形である必要がある) それぞれの辺の両方の頂点と点を結んだ三角形の行列式を求めて符号を調べればよい package { import flash.display.*; import flash.geom.*; import flash.events.Event; [SWF(width="500", height="500", backgroundColor="#ffffff")] public class Main extends Sprite { public var vertexes:Array; private var balls:Array; private var rad:Number=0; public function Main() { balls = new Array();

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 行列式を利用した多角形と点の位置関係
  • [ActionScript 3.0] 雪│miscellaneous

    package{ import flash.display.*; import flash.events.*; import flash.utils.*; [SWF(width="400", height="200",backgroundColor="0x0")] public class SnowSample extends Sprite{ public function SnowSample(){ for (var i:int = 0; i < 50; i++) { var snow:Snow = new Snow((Math.random()*0.5+0.25)*4); snow.x = Math.random()*400; snow.y = Math.random()*200; snow.vx = Math.random()*8 - 4; snow.vy = Math.random

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 雪
  • [ActionScript 3.0] 自力で3D│miscellaneous

    package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; [SWF(width="400", height="300",backgroundColor="0xffffff")] public class ThreeD extends Sprite{ private var x1:Number = 0 ; private var z1:Number = 200; private var vx:Number = 2; private var cameraX:Number = 0; private var cameraY:Number = 50; private var cameraZ:Number = 0; private var faceZ:Number

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 自力で3D
  • [ActionScript 3.0] 自力で3D(カメラ視点移動)│miscellaneous

    前回作成したバージョンにカメラの視点変更移動機能を追加。 (ウィンドウをクリックしてフォーカスを移した後、上下左右キーでカメラが移動。Wで上、Dで右、Xで下、Aで左に視点移動) package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.ui.*; import flash.utils.*; [SWF(width="400", height="300",backgroundColor="0xffffff")] public class ThreeD3 extends Sprite{ // box position private var x1:Number = 0 ; private var z1:Number = 200; // camera position priv

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 自力で3D(カメラ視点移動)
  • [ActionScript 3.0] クォータニオンを使った任意軸を中心とした回転│miscellaneous

    軸のベクトルを(a,b,c)、 回転角をwとすると、この回転を表すクォータニオンQは Q = (cos(w/2); a * sin(w/2), b * sin(w/2), c * sin(w/2)) 共役クォータニオンRは R = (cos(w/2); -a * sin(w/2), -b * sin(w/2), -c * sin(w/2)) となる。 (x,y,z)の座標の点Pをクォータニオンで表すと(0,x,y,z)となり、点Pを(a,b,c)の軸を中心にwだけ回転した後の座標は RPQ(RかけるPかけるQ)となる。 Rotate3DwithQuaternion.as package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.ui.*; import flash.ut

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] クォータニオンを使った任意軸を中心とした回転
  • [ActionScript 3.0] 3Dでのx/y/z軸に対する回転│miscellaneous

    x軸に対する回転行列は y軸に対する回転行列は z軸に対する回転行列は でそれぞれ表される。 Rotate3D.as package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.ui.*; import flash.utils.*; [SWF(width="400", height="300",backgroundColor="0xffffff")] public class Rotate3D extends Sprite{ // camera position private var cameraX:Number = 100; private var cameraY:Number = 100; private var cameraZ:Number = -100; //

    nilab
    nilab 2007/11/07
    miscellaneous [ActionScript 3.0] 3Dでのx/y/z軸に対する回転 : x軸に対する回転行列
  • 1