よく来たな~、新兵ども!
$テン*シー*シー-bootcamp$テン*シー*シー-bootcamp2
 まずはこいつ↑で、iPhoneやiPadのアプリケーションを作るための知識を一から積み上げる事。どんな機材が必要か、どんな知識が必要か、から初めて、C言語、Objective-C言語まで学習してくれい。でないと、心が通じあえん。Bootcamp2は現在更新中ね。
 Webより本が好き~、な人は、

入門本、ドリル本、デバッグ本、データ本!

もよろしく。

「親切すぎるiPhoneアプリ開発の本」のサンプル、Xcode 8(Swift 3.0)対応について
2016.9.16
対応中だけど、もうちょい時間かかりそう。

Apple日本語ドキュメントページ恒例のリンク切れ。ここにリンク貼っておく。

「親切すぎるiPhoneアプリ開発の本」のExample、年明け以降に更新しますが、とりあえずここで連絡。
  29/Autolayout-02 ViewController.swiftの62行目
および、
  29/Autolayout-02-alt-00、29/Autolayout-02-alt-01、29/Autolayout-02-alt-02のViewController.swift 71行目は間違いです。

toItem:self.view, attribute:.Left,

toItem:self.view, attribute:.Leading,
に変更してください。

「親切すぎるiPhoneアプリ開発の本」は、ここにも近日公開予定。↓

10xEng480-32
1 | 2 | 3 | 4 | 5 |最初 次ページ >>
2016年09月24日(土) 11時30分56秒

WebGLでいきますぜい

テーマ:物理シミュレーション

 おはこにゃばちにんこ〜!

 

 

 よーやくデスマーチから解放されました〜。

 親切本のXcode 8対応もひと段落ついたし、やりたくて仕方なかった物理シミュレーションやります。

 

 まずはWebGLだ!

 右のフリープラグインコーナーに出てる立方体に球体がめり込んでるやつね。

 WebGLはwebブラウザで3D描画をするための標準仕様でJava Scriptを使います。

 

 こいつね↑

 

 残念ながらscriptもiframeもアメブロ禁止タグなんで、ここに直接貼れません。

 なので使っていいフリープラグインコーナーに貼り付けますた。

 

 まるごと1つのHTMLページとして書いたのがこっち。

 WebGLで3Dプログラミングだ!

 

 当然ですが、JavaScriptとWebGLを使ってるので、表示させたい人はJavaScriptやWebGLを許可してください。例えばSafariだと環境設定のセキュリティタブにあるWebコンテンツのJavaScriptやWebGLを許可をチェックしておく必要があります。

 

 でもって、書かれてるJavaScriptはこんな感じです。

 HTMLとJavaScript知ってる人は、かなり少ない記述で3D表示できてるのがわかるはず。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>three.jsを使おう</title>
<script src="three.js"></script>

<style type="text/css">
div#canvas-frame{
    width: 600px;
    height: 600px;
}
</style>

<script>
   
    function threeStart() {
        //    描画領域の設定
        var frame = document.getElementById('canvas-frame');
        renderer = new THREE.WebGLRenderer({antialias: true});
        renderer.setSize(frame.clientWidth, frame.clientHeight );
        frame.appendChild(renderer.domElement);

        //    描画領域に表示する3D空間を撮影するカメラを決定
        camera = new THREE.PerspectiveCamera( 45 ,

           frame.clientWidth / frame.clientHeight , 1 , 10000 );
        camera.position.set(0, 50, 100);
        camera.up.set(0, 1, 0);
        camera.lookAt( {x:0, y:0, z:0 } );

        //    3D空間を用意
        scene = new THREE.Scene();

        //    用意した3D空間に光源を投入
        light = new THREE.PointLight(0xFFFFFF, 2, 300);
        light.position.set( 100, 60, 80 );
        scene.add(light);

        arrengeObjects();
        loop();
    }

    //    3D空間に物体を配置        立方体と球
    function arrengeObjects() {
        //    立方体
        cube = new THREE.Mesh(
            new THREE.CubeGeometry(50,50,50),
            new THREE.MeshLambertMaterial({color: 0xffffff}));
        scene.add(cube);
        cube.position.set(0,0,0);

        //    球
        sphere = new THREE.Mesh(
            new THREE.SphereGeometry(20,20,20),              
            new THREE.MeshLambertMaterial({color: 0xff0000}));
        scene.add(sphere);
        sphere.position.set(0,20,0);
    }

    //    一定間隔で繰り返す作業(cubeを回転)
    var t = 0;
    function loop() {
        t++;
        cube.rotation.set(0, 0, t/100);
        renderer.clear();
        renderer.render(scene, camera);
        window.requestAnimationFrame(loop);
    }

</script>
</head>
 
<body onload="threeStart();">
<div id="canvas-frame"></div>
</body>
</html>

 

 ちなみに、Safariの環境設定の詳細タブにある「メニューバーに"開発"メニューを表示」にチェックをつけると、メニューバーに"開発"メニューが表示されるんで、そこから「ソースを表示」を選べばSafari上で直接中身を見ることもできます。

 

というか、この開発メニューがかなり便利なのよ。

ソース見るどころかJavaScript用のデバッガまである。

 

 

 で、この開発画面ソースファイルの項目にcube-600.html以外に、three.jsてのが見えると思うけど、このファイルが少ない記述で3D表示できている理由です。

 

 

 three.jsは煩雑なWebGLの制御を請け負ってくれるライブラリで、iOSで言えばShene Kit(ごく一部の人にしかわからん例えだが…)みたいなもんです。

 直接WebGL使うなら必要ないけど、世界的にメジャーで本も出てるんでオススメ。

 使う場合は

 

<script src="three.js"></script>

 

って感じで指定するだけですが、当然three.jsファイル自体が必要となり、私もサイト内に置いて(実際のcube-600.htmlでは、同じ階層にjsってフォルダ作って、そこにthree.jsを置いてるので"js/three.js"ってなってる)ます。

 このthree.jsファイル自体は下のサイトからdownloadして解凍したフォルダのbuildからコピーします。

 

http://threejs.org

 

 ここね↑

 

buildフォルダの中に入ってるよ。

 

 ま〜、JavaScriptファイルなんで、コピーしなくてもネット上で公開されてる場所に置かれてるthree.jsファイルへのURL書けばいいんだけど、リンクされた側は

大迷惑なんでやめるように。

 相手にDDoS攻撃してるようなもんだからね。やめましょう。

 

 で、このthree.jsファイルさえあれば、あとはHTMLファイルをテキストエディタで作れば、自宅のパソコン上で簡単に3D表示プログラミングをして遊べます。

 例えば、仮にデスクトップ上にWebGLLabという名前の作業用フォルダ(別にデスクトップをそのまま作業用フォルダとして使ってもいいけど)を置いたとして、そこにthree.jsファイルをコピー、でもって自分で適当にthree.jsを使うJavaScriptを書いたHTMLファイルを用意すれば、そのHTMLファイルをダブルクリックかSafariの画面にドラッグ&ドロップすることで3D画面が表示される。

 

 

 もしmacOS付属のテキストエディタで編集する場合は、新規作成直後に、フォーマット>標準テキストにするメニューで、標準テキストにしておくように。保存時のエンコードはUTF8ね。

 

 ちなみにこいつは、振り子を物理シミュレーションしたアニメーション。

 

振り子

 

 ソースファイルはこれ。

 

http://www.tetera.jp/xcc/ameba/src/lab.html.zip

 

 以下を参考に書いてみますた。

 

HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門

 

 こっちのサイトでは精度上げるためにルンゲクッタ使ってますが、私のやつは「んじゃオイラーだと、どんだけダメなんだろ」ということを試すつもりで素のオイラーで実装してます。

 JavaScript読める人は、参考のサイトを読んでルンゲクッタに差し替えてみるといいです。

 説明は次回、じゃまた。

 

 暗号もそのうち再開。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
最近の画像つき記事
 もっと見る >>
2016年09月16日(金) 09時27分55秒

ドリル本のXcode 8対応について その1

テーマ:ドリル本 補完計画

Examplesについて

公式サポートで連絡する予定だけど、先行して進捗報告。

 

++、--は廃止されました。
関数の第1引数のラベルが無視されなくなりました。
inoutキーワードの位置が変わります。
Cスタイルのforループは廃止になりました。

UIApplicationMainの第2引数が変更されました。ていうか、CommandLine.unsafeArgvの型定義が追いついていないのかな。

UIApplicationMain(CommandLine.argc,
 UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(
  to: UnsafeMutablePointer<Int8>.self,
  capacity: Int(CommandLine.argc)),
 nil,
 NSStringFromClass(AppDelegate.self)
)
あと、クラスオブジェクト指定に.selfが必要になった。

 

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2016年09月13日(火) 14時18分37秒

布シミュレーション

テーマ:Xcode

布シミュレーションの論文読んでる。

Large Steps in Cloth Simulation 

http://www.cs.cmu.edu/~baraff/papers/sig98.pdf

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
1 | 2 | 3 | 4 | 5 |最初 次ページ >>

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

      • 総合
      • 新登場
      • 急上昇
      • トレンド

      ブログをはじめる

      たくさんの芸能人・有名人が
      書いているAmebaブログを
      無料で簡単にはじめることができます。

      公式トップブロガーへ応募

      多くの方にご紹介したいブログを
      執筆する方を「公式トップブロガー」
      として認定しております。

      芸能人・有名人ブログを開設

      Amebaブログでは、芸能人・有名人ブログを
      ご希望される著名人の方/事務所様を
      随時募集しております。