タグ

ブックマーク / kougaku-navi.hatenablog.com (30)

  • Processingでタイトルバーのないウィンドウを作り、それをマウスドラッグで移動できるようにする - Imaginary Code

    タイトルバーがないプログラムをときどき作りたくなることがありますが、タイトルバーがないとウィンドウが移動できなくなってしまいます。そこで、ウィンドウ内をドラッグしたときに移動できるようにしましょう、というのが以下のコードです。 import java.awt.*; int mx = 0; int my = 0; void setup() { size(800,600); } void init() { frame.removeNotify(); frame.setUndecorated(true); frame.addNotify(); super.init(); } void draw() { } void mousePressed() { mx = mouseX; my = mouseY; } void mouseDragged() { Point mouse; mouse = Mou

    Processingでタイトルバーのないウィンドウを作り、それをマウスドラッグで移動できるようにする - Imaginary Code
  • Processingでシリアルポートの設定が簡単になるライブラリ「SerialSelector」を作りました - Imaginary Code

    ProcessingでArduinoやXBeeと通信するプログラムを作っているとたびたびシリアルポートがらみのエラーに出くわします。大抵の場合、ポート番号や通信速度が正しく設定されていないことが原因なのですが、プログラムでポート番号を「COM1」とか「/dev/tty.usbmodem1234」とか「Serial.list()[3]」みたいな感じで直接書いていたりするとこの問題が起こりがちです。 この問題に関して以前から「実行中にポート番号や通信速度を自由に変更できるUIがあるといいのに!」と思っていたので、ライブラリを作りました。 SerialSelectorライブラリ SerialSelectorはProcessingにおいてシリアル通信の設定ダイアログを表示するためのライブラリです。WindowsでもMacでも動作します。 ダウンロード: こちらのページに置いてます: BACKYAR

    Processingでシリアルポートの設定が簡単になるライブラリ「SerialSelector」を作りました - Imaginary Code
  • PCからProcessingでTHETAのシャッターを切る - Imaginary Code

    リコーの全天球カメラ「THETA」いいですね。さっそく@MobileHackerzさんをはじめとするハッカー諸氏によってハックが進んでますが、僕もProcessingから操りたいのでコード書きました。といっても、@GOROmanさんのコードをProcessingに移植しただけなのですが。 はい、こんな感じ。大学の僕の部屋です。 Processingのコード PCの無線LANでTHETAにつなぎ、プログラムを実行してください。画面をクリックすると、シャッターを切ります。それだけ。ああ、簡単すぎて怖い。 import processing.net.*; Client client; int[] init = { 28, 0, 0, 0, 1, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 25

    PCからProcessingでTHETAのシャッターを切る - Imaginary Code
  • ProcessingでKinectを使って遮蔽表現のあるARを作ろう - Imaginary Code

    今日の話は,ARにおいて人や実物体の後方にCGがある時に,CGの一部または全体が隠れて見えなくなっている状態(オクルージョン)をきちんと表現するべく,Kinectを使ってみましょうというものです. 前回はマーカベースの手法で遮蔽を実現する方法を紹介しましたが,今回はそれのKinect版です.事前に形が知らされていない未知形状の物体や,変形する物体,人間の手や胴体に対してもオクルージョンが表現できるようになります.ビバ!Kinect! 今日はこれの作り方と原理について解説します.あ,ちなみに僕人です. まずはソースコード いきなりですがProcessingのコードです.Kinectを扱うライブラリとしてsimple-openniを使いました.simple-openniのセットアップについては説明を省きます. import SimpleOpenNI.*; SimpleOpenNI kinec

    ProcessingでKinectを使って遮蔽表現のあるARを作ろう - Imaginary Code
  • Processingでオクルージョン表現のあるARを作る(ARマーカ編) - Imaginary Code

    ARにおいて,現実の世界に3次元CGが違和感なく存在しているように見せるための条件の1つに,オクルージョンの実現があります.オクルージョンとは隠れのことで,実物体の背後にCGがあるときにCGの一部またはすべてが隠れて見えなくなっている状態をきちんと表現しようというものです. 今回はこういうもの↓に挑戦してみましょう. しくみ TV番組や映画の制作で用いられているクロマキー合成の技法を使います.まず,シーンの背景色を緑色に設定し,実物体と同形状の緑色のCGと,重畳したいCGを一緒に描画します.これによりCGが実物体でマスクされた画像を得ることができます.このデータをいったんバッファに保存します.次にカメラ画像を描画し,バッファ中の緑色でないピクセルだけを画面上に描画していけば,合成完了です. 実装してみる ProcessingとNyAR4psg(Processing版のARToolKit)を

    Processingでオクルージョン表現のあるARを作る(ARマーカ編) - Imaginary Code
  • Processingでお手軽にGoogleマップから画像を取得する - Imaginary Code

    Google Mapper for ProcessingというGoogleマップから地図画像を取得するためのProcessing用のライブラリがあります.ごくシンプルな機能しかありませんが,とても簡単に扱えるので遊んでみてください. 使い方 上記の配布サイトに行くと,Downloadと書かれたところに投げやりにjarファイル(googleMapper.jar)が置いてあるので,それをダウンロードします.Processingを起動して,スケッチ上にgoogleMapper.jarをドラッグ&ドロップすればそのスケッチで利用可能になります.普段使いするならば,Processing/libraries/googleMapper/library/というフォルダ構成を作ってそこに置くのが良いでしょう. コードはこんな感じです.短い.恐ろしく短い.何の冗談かと. import googlemapper

    Processingでお手軽にGoogleマップから画像を取得する - Imaginary Code
  • How to bulid iPad with Arduino + Processing.js - Imaginary Code

    YouTubeに作り方教えてとコメントがあったので,ソースコード類を置いておきます.(I show the resources of an Arduino-based gadget for iPad.) ※どうしてこういう設計に至ったかの経緯についてはこちらに書いています↓ iPadにArduinoをつなぎ,Webブラウザ上でProcessingを使ってセンサデータを可視化 - Imaginable Reality Circuit 回路は,USBキーボードとして機能するパートと,光センサとして機能するパートから構成されます.ArduinoでUSBキーボードを作る方法については以下のページをを参考にしました.(This circuit has two parts. One of them is a usb-keyboard emulator, and the other is a light

    How to bulid iPad with Arduino + Processing.js - Imaginary Code
  • Processingで手抜きプロジェクションマッピング - Imaginary Code

    プロジェクションマッピングが流行ってるようなので、Processingでさくっと書いてみました。ビデオテクスチャの頂点をマウスで操作して、対象物(家具とか)に投影画像をぴったり合わせるというものです。 プロジェクタ固定、対象物固定な静的シーン限定ですが、実際にやってみると、結構楽しいですよ。扉とか箱にセンサをつけて、それに反応して映像が変化するようにしても面白いですね。 import processing.video.*; import processing.opengl.*; Movie mov; // 動画 int selected = -1; // 選択されている頂点 int pos[][] = {{0,0},{400,0},{400,300},{0,300}}; // 頂点座標 void setup() { size( 1024, 768, P2D); // 画面サイズ(適宜調整)

    Processingで手抜きプロジェクションマッピング - Imaginary Code
  • iPadにArduinoをつなぎ,Webブラウザ上でProcessingを使ってセンサデータを可視化 - Imaginary Code

    タイトルのとおりですが,iPadにArduinoをつなぐのをやってみました.cdsで明るさをセンシングして,Processingを使って書かれたWebページ上で表示しています. (※音声解説つきです) いろいろ苦労したので記録を残しておきたいと思います. コトの発端 ArduinoとiPadを連携させる方法をいろいろ調べてたら,USBキーボードのふりをさせたArduinoをカメラコネクションキットを使ってiPadに接続するという方法を発見. http://mobilecore.net/diary/diary20101127/ これは面白そうだと思って実際にトライしてみたらいろいろ落とし穴がありましたね. ArduinoをUSBキーボードにするカラクリ まず,1つ目のポイントは,この人の動画で使われているArduinoはUNOだということ.Arduino UNOは,これまでのバージョンで使わ

    iPadにArduinoをつなぎ,Webブラウザ上でProcessingを使ってセンサデータを可視化 - Imaginary Code
  • VOICEROID 月読アイをProessingでしゃべらせる - Imaginary Code

    「月読アイ」をご存じでしょうか.VOICEROIDという音声読み上げソフトのキャラクタバリエーションの1つです.テキストを入力するだけで簡単に脱力系のょぅι゙ょ声を作れるため,動画のナレーションのみならず,インタラクティブなアート作品などでも使われています.最近の例だと,日科学未来館で展示されている「アナグラのうた〜消えた博士と残された装置〜」でも使われていました*1. さて,来の使い方としては,テキストを入力→WAVファイルで保存→それを自分のプログラムで再生という感じなんですが,やはりプログラムで動的に生成されたテキストをインタラクティブに再生させたいですよね. というわけで,Processingで月読アイをしゃべらせるコードを書きました. /* VOICEROIDをProcessingでしゃべらせるコード(月読アイ専用)*/ import org.eclipse.swt.inte

    VOICEROID 月読アイをProessingでしゃべらせる - Imaginary Code