読者です 読者をやめる 読者になる 読者になる

bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

code

AndroidのPlayStoreランキング

rubyとnokogiriでPlayStoreランキングを取得。 順位とアプリ名だけ。 AppStoreみたいに配信すればいいのに。たのしいRuby 第4版作者: 高橋征義,後藤裕蔵,まつもとゆきひろ出版社/メーカー: ソフトバンククリエイティブ発売日: 2013/06/04メディア: 単行本こ…

Boost.coroutineを使った

コルーチンのエントリー部分から呼ばれるサブ関数以下でyield()をしたかったら、引数で渡すしかないのか・・・ コルーチンは順番がはっきりしているのでcaller_typeをグローバルにしても良いのかしら。 // glew32s.libを使う. #define GLEW_STATIC #include <stdio.h></stdio.h>…

Rでデータフレームの同一要素カウント

衆議院議員で多い名前トップ5を棒グラフにする。 使ったリスト(使うなら自己責任で) https://dl.dropboxusercontent.com/u/67579260/data/list.txt dat<-read.table("D://text/R/list.txt", header=TRUE) dat_name<-dat$ふりがな名前 x<-table(dat_name) sor…

Rを触ってみた

衆議院名簿をcsvにしてRで読み込み、summaryをするだけ。 ひろし多過ぎ。 使ったリスト(使うなら自己責任で) https://dl.dropboxusercontent.com/u/67579260/data/list.txt dat<-read.table("D://text/R/list.txt", header=TRUE) summary(dat) 苗字 名前 ふ…

FTGLを使って日本語入力

そこそこ簡単だが、固定パイプラインを使うので気持ち悪い。 // グローバル #define FONT_FILE "C:\\Windows\\Fonts\\msgothic.ttc" FTPixmapFont* g_Font = NULL; // 初期化 g_Font = new FTPixmapFont(FONT_FILE); if(g_Font->Error()) { exit(EXIT_FAILUR…

GLFW3.0.1とGLEW1.10.0での簡易サンプル

VBOとシェーダーを使ったもの。 動けばOK 行列はglmを使った。楽ちん。三角形が回るサンプル。アプリケーション // glew32s.libを使う. #define GLEW_STATIC #include <stdio.h> #include <stdlib.h> #include <GL/glew.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/type_ptr.hpp> const int g_WindowWidth</glm/gtc/type_ptr.hpp></glm/gtc/matrix_transform.hpp></glm/glm.hpp></glfw/glfw3.h></gl/glew.h></stdlib.h></stdio.h>…

GLFW3.0.1とGLEW1.10.0でVBO

後はシェーダーを使えば最少サンプルになる。 // glew32s.libを使う. #define GLEW_STATIC #include <stdio.h> #include <stdlib.h> #include <GL/glew.h> #include <GLFW/glfw3.h> const int g_WindowWidth = 640; const int g_WindowHeight = 480; GLuint g_VBO = 0; GLuint g_Indices = 0; GLFWwindow*</glfw/glfw3.h></gl/glew.h></stdlib.h></stdio.h>…

簡単なラムダ式

サンプルまるパクリ。 型定義をして、変数に処理を代入して、引数を入れて実行みたいな感じ。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { delegate bool Che…

C#のsealedを使ってみる

C#をそれなりに使うようになったが幾つかの機能を使ったことがない。 sealedもその一つ。 派生クラスで関数をoverrideすることで処理内容を変えることができるが、 それを禁止することができる。 sealedが付いた関数を派生クラスでoverrideするとコンパイル…

UDPテストコード

フォームで簡単なUDPテストをした。 localhost内なので実際のインターネットで動くかは分からない。 #pragma once namespace UDP { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace…

C++ CLIの文字列変換System::Stringからstd::stringへ

System::Stringをstd::stringに変換する必要が出たので調べた。 パクリ元 http://vene.wankuma.com/prog/CppCli_strings.aspx#ss2mb下記を追加 using namespace System::Runtime::InteropServices; こんな感じのコード std::string tmp; IntPtr mptr = Marsh…

Colladaからマテリアルとメッシュ取得

モデルデータに必要なものを取得してみた。 無理やり取得してる感がある。 次はDirectXが読みやすいような形式でバイナリ化 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using…

Colladaからデータ取得

C#のLinqToXMLでColladaからデータを取ってみる using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Xml.Linq; using System.Text; using System.Wi…

objファイルのテクスチャ表示

UVが怪しいがテクスチャを貼った箱を表示した。 blenderでobjにした。

enchant.jsを使ってみた

画面遷移が楽。 [タイトル画面]→[プレイ画面]→[終わり画面] 終わり画面からタイトル画面とプレイ画面を選べる。https://dl.dropbox.com/u/67579260/enchant/index.html

objファイルの表示

最近サボり気味だったので少しだけ進めてみた。 メッシュとシェーダーを利用するモデルレンダラーを作成して表示した。 単色なので分かりにくい。 次はテクスチャを貼る。

Luaでメニューを調整できるようにしてみた

メニューの位置の調整と項目の追加をできるようにした。lua_MenuPosXとlua_MenuPosYを弄るとメニューの位置が変わる。 lua_MenuTableに項目を追加するとitem="○○"の○○の項目が増える -- menu table -- menu position lua_MenuPosX = 64 lua_MenuPosY = 32 --…

Luaを使ってみた

Luaくらいは使えた方がよいかもしれないので、使ってみた。 CからLua関数の呼び出しとLuaからC関数の呼び出しをやってみた。 Luaで検索してヒットしたコードをパクりつつ。準備が必要なことは luaのインストール VSの設定 ・リンカの入力にある追加依存ファ…

xact3でwave再生

サウンドでも再生してみた。 微妙に設計に失敗してるけど気にしない。使い方 // ゲームループのどこか g_sound_mgr.doWork(); // アプリケーションのどこか cSound* sound = g_sound_mgr.createSound("Sound/Sounds.xwb"); sound->play(); g_sound_mgr.destr…

HeapFree

HeapFreeで開放した場合は0xfeeefeeeになるらしい。 そこで例外が出るなら開放済みのメモリ領域にアクセスしている。

XMVectorSet

XMVECTOR Face = XMVectorSet( 0.f, -1.f, 0.f, 0.f ); 実行するとFaceの中身が(x,y,z,w)=(0.f, 0.f -1.f, 0.f)になる。 なぜ???ベクトルa=(ax, ay, az)をベクトルb=(bx, by, bz)に変換する行列を求めるようなことが必要になった。 手順としては 1:ベク…

なんちゃってコルーチン

描画が止まるようなこととかはなかったので最低限の目標は果たした。 タスク using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsPhoneGame1.Task { class CTask { Func<IEnumerable> m</ienumerable>…

バイナリ出力

修復したら使えるようになった。XMLのデータをロードしてバイナリに出力してみた。 private void button_export_binary_Click(object sender, EventArgs e) { // save as binary // 情報の取得 string basename = textBox_name.Text; string filename = base…

FormでXML入力、読込と保存

フォームで入力した情報をXMLで保存、保存したXMLを読み込みできるようにした。 <particle> <header> <name type="string">abc</name> </header> <emitter> <rotX type="Int16">1</rotX> <rotY type="Int16">2</rotY> <rotZ type="Int16">3</rotZ> </emitter> <particle> </particle></particle>

FormでXML入力

FormでXMLの内容を入力してXMLに保存的なことをした。 将来的にはパーティクルとかのデータを作成できるようにする予定。出力したXML <Particle> <ParticleInfo> <Name Type="string">abc</Name> </ParticleInfo> <ParticleData> <Position Type="float">100.5</Position> </ParticleData> </Particle> コ…

サンプルをぱくったサンプル

元ネタはここ。 http://opcdiary.net/?p=3438マルぱくり。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; namespace LinqToXML { class Program { static void Main(string[] args) { var…

C++を学ぶ

知っていることより知らないことの方が多いC++ 処理の一部だけを特殊化したい場合に、派生クラスでオーバーライドしたものを使う。 こんな感じで良いのだろうか。 #include <iostream> using namespace::std; // 基底 class cBase { public: cBase(){} virtual ~cBase(</iostream>…

perlとCでバイナリ

頻繁に使うテーブルのバイナリ化の簡単なメモを残しておくことにした。perlでテキストのリストをバイナリにして、 Cでそのバイナリを読み込み、プリントしてみる。下記を実行するとlist.binができる。 ./txt2bin.pl list.txt下記でlist.binの内容を表示する…

三角形の走査変換のミス

ミスがあった。 色々面倒くさい。

三角形の走査変換もどき

三角形を塗ることができた。 とにかく実装してみたかった。今は反省している。 後処理が怪しい。 // main.cpp #include <stdlib.h> #include <stdio.h> #include <float.h> #include <math.h> #include <SDL/SDL.h> //----------------------------------------------- // 構造体の定義 //------------------</sdl/sdl.h></math.h></float.h></stdio.h></stdlib.h>…

参照カウンタ付きのキャッシュ

大雑把に実装してみた。 もっと抽象化できると思う。 まずは、main.cpp // main.cpp #include<iostream> #include "CacheManager.h" using namespace std; // シングルトンお試し用 void init(); void run(); void end(); void disp(int num, InterfaceResource **ress</iostream>…

ポインタの参照渡し

#include<iostream> #include<string> using namespace std; // 引数のポインタを0(NULL)にする void Ref(int* (&a)) { a = 0; } // 引数のポインタを0(NULL)にする void Ptr(int** a) { *a = 0; } int main() { int num = 5; int *i = &num; cout << "i=" << i << " -> "; Ref</string></iostream>…

やっとこさPython

そろそろPythonを触らないと興味が霧散してしまいそうなので、触った。 演算子をオーバーロードできるのがいい。 class Fraction: def __init__(self, num, den): self.numerator = num self.denominator = den # self.sign def __add__(self, _t): tnum = s…

C#で要素が分数の行列

これまでに書いたコード。Class1.cs using System; using MyMath; namespace ConsoleApplication2 { /// <summary> /// Class1 の概要の説明です。 /// </summary> class Class1 { /// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Mai…

C#とFormアプリでGUI部品を動的に生成

どんなサイズの行列にも対応するためのはじめの一歩。 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace FormSample1 { /// <summary> /// Form1 の概要の説</summary>…

C++/CLIでやったことをC#で2

行列クラスも書いた。 ただし、逆行列はまだ。 using System; namespace MyMath { /// <summary> /// 行列クラスです。 /// </summary> public class Matrix { private Fraction[,] m_elements; // コンストラクタ public Matrix( int row, int column ) { this.m_elements = ne…

C++/CLIでやったことをC#で1

分数のクラスを書いた。 コメント書けない病の克服に至らず。 using System; using System.Collections; namespace MyMath { /// <summary> /// 分数クラスです。 /// </summary> public class Fraction { private int m_numerator; private int m_denominator; private int m_s…

勘違い

msdnのコードを鵜呑みにしたのが失敗だった。 public override string ToString() { return( String.Format( "{0}/{1}", this.m_numerator, this.m_denominator ) ); } 上記をみて、string型を返すのにSystem.String型になっている。 こいつを改めてやれば動…

VS2003.NETのC#

下記が上手く動いた。 // ToStringのオーバライド public override string ToString() { return ( this.m_numerator + "/" + this.m_denominator ); } 下記では上手く動かなかった。 String.Formatで色々エラーが出た。 バージョンの問題だろうか。 public o…

原因半分解明

前の分数テンプレートクラスのoperator=が下記のもの。 // TFractionクラスの一部 // 演算子 TFraction<T>& operator=( TFraction<T> t ) { m_numerator = t.GetNumerator(); m_denominator = t.GetDenominator(); m_sign = t.GetSign(); return *this; } 分子が0</t></t>…

重いけど我慢

前作った行列のアプリをC++/CLIのWindowsFormアプリで作り直している。 LabelやTextBoxをリストに入れることを覚えた。 Form1.hより // Form1.hの一部 #pragma endregion private: // コレクション System::Collections::Generic::List<System::Windows::Forms::TextBox^>^ _TextBoxCollections</system::windows::forms::textbox^>…

unsigned int を unsigned char 4つに

#include <stdio.h> #include <stdlib.h> int main() { unsigned int input = 0; unsigned char bits[4] = {0}; printf( "%u\n", 0xffffffff ); //input = 4294967294; //input = 16777215; input = 4278255614; for( int i = 0; i < 4; ++i ) { for( int j = 0; j < 8; ++j ) {</stdlib.h></stdio.h>…

やることそっちのけで高校野球

高校球児の眩しさに立ち眩みをした。 甲子園は暑そうだ。 頑張ってる彼らもまた労働市場に入ってくる。 勝ち目なさ過ぎる。 ハフマン符号で手詰まり感。馬鹿には難しいのかな。 ビット列の基礎からやり直し。 #include <stdio.h> #include <stdlib.h> int main() { int input = </stdlib.h></stdio.h>…

抽象的に考えられない

具体例をゴリゴリして帰納法的に抽象化を試みるのは、能力的に悲しい気がする。 ハフマンもどきで満足気味なのもアレ。 配列サイズを自分で計算していないところが悲しさ3倍増し。 #include <stdio.h> #include <stdlib.h> int main() { unsigned int input[3] = { 0, 2, 3 }; </stdlib.h></stdio.h>…

SHIFT-JIS

下のやつはlength = 2になる。 star[0]に上位、star[1]に下位みたいに分けて入れられているみたいです。 #include<stdio.h> #include<string.h> int main() { char *star = "☆"; printf( star ); printf( " : length = %d", (int)strlen( star ) ); printf( "\n" ); if( 0 == st</string.h></stdio.h>…

こっちの方が分かり易いかな

#include <iostream> using namespace std; template< typename T > class TMatrix { private: T** m_elements; size_t m_row; size_t m_column; public: TMatrix() { } TMatrix( size_t row, size_t column ) : m_elements(0), m_row( row ), m_column( column ) { m_</iostream>…

C++で2次元配列を動的に(その2)

段々違和感なく見ていられるようになったかな。 #include <iostream> using namespace std; // 2次元配列を動的に確保 template< typename T > T **newDim2Array( size_t row, size_t column ) { T **array = new T*[row]; for( int i = 0; i < (int)row; ++i ) array</iostream>…

C++で2次元配列を動的に

下記のようになるが、納得し切れていない。 #include <iostream> using namespace std; int main() { // 配列の行:rowと列:column int row=0, column=0; cout << "行の数を入力 >"; cin >> row; cout << "列の数を入力 >"; cin >> column; // 生成 int **array = new i</iostream>…

共用体2

個人的には、こっちの方が良いかな。 他の予約語にも、アッと驚く使い方があるのかしらん。 #include <iostream> using namespace std; /* union Elements { float m[4][4]; struct { float m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m3</iostream>…

共用体

id:malibu-bulldogさんに共用体を使うことを薦められたので、行列の要素として使うサンプルを作ったら良い感じだ。 こういう感じになるのでしょうか。 #include <iostream> using namespace std; union Elements { float m[4][4]; struct { float m00, m01, m02, m03, </iostream>…