2009年10月29日木曜日

STLのバイナリーフォーマットの読み込み(C/C++)


STLファイルフォーマット からスクラップ:
バイナリフォーマット

* 構文

バイト数 データ型 データ内容
80 char[ ] 任意の文字列
4 unsigned int 三角形の枚数
- - 1つ目の三角形データ
4 float 三角形の法線ベクトルのX成分値
4 float 三角形の法線ベクトルのY成分値
4 float 三角形の法線ベクトルのZ成分値
4 float 三角形の1点目の頂点のX座標値
4 float 三角形の1点目の頂点のY座標値
4 float 三角形の1点目の頂点のZ座標値
4 float 三角形の2点目の頂点のX座標値
4 float 三角形の2点目の頂点のY座標値
4 float 三角形の2点目の頂点のZ座標値
4 float 三角形の3点目の頂点のX座標値
4 float 三角形の3点目の頂点のY座標値
4 float 三角形の3点目の頂点のZ座標値
2 - 未使用データ
- - 2つ目の三角形データ
4 float 三角形の法線ベクトルのX成分値
4 float 三角形の法線ベクトルのY成分値
4 float 三角形の法線ベクトルのZ成分値
4 float 三角形の1点目の頂点のX座標値
4 float 三角形の1点目の頂点のY座標値
4 float 三角形の1点目の頂点のZ座標値
4 float 三角形の2点目の頂点のX座標値
4 float 三角形の2点目の頂点のY座標値
4 float 三角形の2点目の頂点のZ座標値
4 float 三角形の3点目の頂点のX座標値
4 float 三角形の3点目の頂点のY座標値
4 float 三角形の3点目の頂点のZ座標値
2 - 未使用データ
・・・ - (三角形の法線ベクトルのX成分値から未使用データまでを1枚の三角形データとして三角形枚数分のデータが続く)


VC で C言語、C++互換で書くと、こんな感じかな。

typedef struct tagSTL_FILE_HEADER
{
    char comment[80];                    // オブジェクト名
    unsigned int numberOfTriangles;        // トライアングル数
} STL_FILE_HEADER, *LP_STL_FILE_HEADER;

#pragma pack(push,1)
typedef struct tagSTL_TRIANGLE_ENTRY
{
    float n[3];                            // 三角形の法線ベクトルのXYZ成分値
    float v1[3];                        // 三角形の1点目の頂点のXYZ座標値
    float v2[3];                        // 三角形の2点目の頂点のXYZ座標値
    float v3[3];                        // 三角形の3点目の頂点のXYZ座標値
    unsigned short reserved;            // 未使用データ
} STL_TRIANGLE_ENTRY, *LP_STL_TRIANGLE_ENTRYR;
#pragma pack(pop)

構造体のアラインメントを正しくセットしないと、読んでいくうちにずれちゃう。
この場合は、ズレを考慮して1トライアングルづつ読み込む事も不可能ではないけど、
ディスクアクセスの効率を考えたら、動的メモリ確保で作った配列を使用して、
まとめ読みした方が確実に早いので、その場合は、アラインメントの調整は必須。
(その分メモリを多く要するけど、最近はメモリがたくさん載っている事が多いから、、、)



アラインメントについての詳説


データ型のアラインメントとは何か,なぜ必要なのか? からスクラップ:
アラインメントは何か?

CPU とメモリの間は,データをやりとりするための電線の束で結ばれている. これをデータバスという.32ビット CPU では普通,この電線は32本あり (32ビット・データバス,下図),CPU はメモリ上のデータを一度に32ビット (=4バイト) 読み書きすることができる注2. このため,メモリの最初の4バイト (アドレス0~3),次の4バイト (アドレス4~7),更に次の4バイト (アドレス8~11) … は,それぞれ一度で読み書きできる. 普通,このような4バイトをワード (word:語) と呼ぶ.




2009年10月27日火曜日

GDI+ Reference

GDI+ Reference
The following topics provide reference information about the Microsoft Windows GDI+ API with the C++ programming language:
Classes
Functions
Constants
Enumerations
Structures

2009年10月25日日曜日

Windows 7 x64 で未署名のドライバを使用する


FAQ - Windows Vista Wiki からスクラップ↓
Q:Vista 64bitで未署名ドライバは使えますか? †

A:起動時にF8キーを押してブートオプションを表示させ、「ドライバ署名の強制を無効にする」を選択すれば使えます。
起動時に毎回操作するのが面倒な場合はReadyDriver Plusをインストールするとこの操作を自動化できます。
インストールの途中でブートメニューを選ぶ所がありますが、デュアルブートなどでなければ初期値の1 Strokeで問題ありません。
戻すときはコントロールパネルのプログラムと機能からアンインストールしてください。

Acer Aspire 1410 で VTを有効にする


Acer系CULVノート AS1410/EC1400 Part4 からスクラップ↓
AS1410でVT有効のためのBIOS 3117の導入について

http://www.acer.co.jp/
トップメニューの
サポート → ドライバーダウンロード → ノートブックPC → Aspire → Aspire 1410 (11.6")を選択
BIOSを選択し、3117を選択しダウンロード
次にダウンロードしたZIPファイルを解凍し、InnsydeFlashx64.exeを実行し指示に従いアップデートを完了させて再起動
再起動後、VTが有効になる

間違ってもBIOSバージョン3120ををダウンロードしてインストールしないこと
インストールしてしまうと、VTは有効にならない

2009年10月22日木曜日

主に高校数学レベルの公式のPDFへのリンク

三角関数公式集
http://homepage3.nifty.com/sugaku/kousikisankaku.pdf

基本的な関数の不定積分
http://www.apphy.fukui-u.ac.jp/~tajima/cs/supp1_cs08.pdf

高校数学落穂拾い
公式集(Mathematica4で検証)
http://kmkz.jp/key/math/formula03_20010311.pdf

公式集:解析Ⅰ
http://www.ge.fukui-nct.ac.jp/~nagamizu/f-2-k.pdf

高校物理公式集Appendix~物理数学編~
http://www.ilovephys.net/library-alpha/formulasA.pdf

公式集(数学Ⅰ・A)頭の中に入っていますか?
http://www.din.or.jp/~saigou/math/1a.pdf

公式集(数学Ⅱ・B) 頭に入っていますか?
http://www.din.or.jp/~saigou/math/2b.pdf

公式集(数学Ⅲ・C) 頭に入っていますか?
http://www.din.or.jp/~saigou/math/3c.pdf

「絶対に覚えておかなければいけないもの」と「
絶対に覚えておかなければいけないものから簡単に導けるもの」
http://www.uitec.ehdo.go.jp/examination/images/pdf/advice5.pdf

2007年度 微分積分学A・B 担当教員:吉田伸生 <大学数学のテキスト>
http://www.math.kyoto-u.ac.jp/~nobuo/tch/biseki/07/index.html


2009年10月20日火曜日

2009年秋冬 Windows 7搭載ネットブックの比較記事


ASCII.jp:どれがお買い得? Windows 7搭載ネットブック大集合|Windows 7で快適になったか? 最新ネットブック特集 からスクラップ:
各社から登場のWindows 7搭載ネットブックを
まとめてチェック

 Windows 7発売に合わせて、パソコンメーカー各社からさまざまなネットブックが発表された。ここでは各社の最新Windows 7搭載ネットブックをまとめて紹介しよう。

 取り上げるネットブックは以下のとおり。どの製品も基本的には、春または夏モデルのバージョンアップ版といえるものだが、それぞれでキラリと光る特徴がある。それを解説していこう。

LaVie Light BL330/VH6
メーカー:日本電気
OS:Windows 7 Starter
予想実売価格:6万円前後

LaVie Light BL530/VH6
メーカー:日本電気
OS:Windows 7 Home Premium
予想実売価格:7万円前後

dynabook UX UX/24K
メーカー:東芝
OS:Windows 7 Starter
予想実売価格:7万円台半ば

FMV-BIBLO LOOX M M/E10
メーカー:富士通
OS:Windows 7 Starter
予想実売価格:6万円前後

HP Mini 110
メーカー:日本ヒューレット・パッカード
OS:Windows 7 Starter
予想実売価格:5万円前後

Aspire one D250
メーカー:日本エイサー
OS:Windows 7 Starter
予想実売価格:4万7000円前後

VAIO W
メーカー:ソニー
OS:Windows 7 Home Premium/Starter
価格:5万9800円から






小規模企業向け、無料アンチウィルス AVG Anti-Virus Free Small Business Edition


世界初という触れ込みですが、

Comodo Anti Virus は、昔から、企業ユースの制限は無かったような。。。



マイネットワークの表示を高速化


Windows XPSP2なんですが、マイネットワークの表示にすごく時間がかかるようにな... - Yahoo!知恵袋 からスクラップ:
Windows XPSP2なんですが、マイネットワークの表示にすごく時間がかかるようになってしまいました。改善する方法はありますでしょうか?これまではクリックして数秒もかからず、共有フォルダが表示されていました

ベストアンサーに選ばれた回答

ハブはレピート型ですかスイッチですか?
スイッチでしたら、電源を入れなおしてMACテーブルを初期化してください


おお!
すごく早くなった!

たまに、ハブの電源を切れという事か。

それってどうなの???



2009年10月19日月曜日

いけないこと

再・アクティベーションを避ける!!!からスクラップ:
起動回数誤魔化し

OfficeXP の場合、アクティベーションを行わないと50回しか使えません (´・ω・`)ショボーン・・・。
50回以降は閲覧はできるけど編集はできなくなる。つでにアイコンがグレーになる・・・。
「 OfficeXP 買ったケド、オラんちネット以前に電話も無えべ! 明後日は学会発表だべ!? 」って時に、まぁ、一時しのぎで使用回数を誤魔化してみよか (^-^;

『50回は使える』と言うことは、どこかでカウントしているわけです。OfficeXP の場合は以下の場所↓

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Products
\1140**(環境による)***\Usage : AlwaysInstalled

Win2000の様子。コイツは実験用のマシンなんでアクティベーションしてない。というか入れる場合は法的にはもう1つライセンス買わなあかんので、誤魔化して粘ってる・・・。

手持ちの環境で調べたら WindowsXP/2000professional では上述の場所の AlwaysInstalled の値が起動回数を表しているみたい。16進数でカウントしているので下2桁の値が「32」になったら50回起動したことを表します。レジストリエディタ(regedit.exe)でココの値を書き換えてやれば、まぁ、何とか しのげますわなぁ・・・。

Windows 7 の Windows XP モードは、Professional / Ultimate のみの機能

Windows XP モード:Windows 7 の機能からスクラップ:
この機能は、主に小規模、中規模のビジネスを念頭に置いて設計されており、個別のダウンロードとして提供され、Windows 7 Professional および Ultimate でのみ機能します。

じゃ、Home Premium では 使えないというのかっ!
ひどいな~

SQL Server Compact

極小SQL Server Compactでデータベース・アプリをお手軽作成 - @IT
MSDN:SQL Server Compact 3.5 オンライン ブック

SQL Server Compact 3.5の特徴(...略...)

サイズの小さい組み込みデータベース

 (...略...)

 データベース・エンジンのサイズは、(...略...)約2.2~2.6MBytesです。
(...略...)クライアントへのインストール作業は、単に9つのファイルをXCopyで配置するだけです。

(...略...)ストアドプロシージャとトリガがサポートされていない

(...略...)利用できるデータの型に違いがある

(...略...)データベースのデータ領域として利用できるサイズは最大4GB

(...略...)利用できる開発環境はVisual Studio 2008だけ

(...略...)Visual Studio、SQL Server Management StudioおよびSQL Server Management Studio Express Editionからのみ利用可能

(...略...)SQL Server Compact 3.5のデータベースは、.SDFファイルとして保存されます。



これは、Access のMDBよりも、安全性が高いのでしょうか?


2009年10月16日金曜日

慣性モーメント (Wikipedia)

慣性モーメント - Wikipediaからスクラップ:

慣性モーメント


提供: フリー百科事典『ウィキペディア(Wikipedia)』



慣性モーメント(Moment of inertia)あるいは慣性能率とは、物体の回転のしにくさをあらわす量である。もっと正確に言えば回転運動の変化(回りだす、止まる)のしにくさをあらわす。質量モーメントとしてあらわされる。

重さの無視できる棒の両端に、質量mMの物体がくっついたものを考える。棒の適当な位置に回転の中心となる点を定め、そこから両端までの腕の長さをそれぞれaAとする。このとき、中心に対する慣性モーメントIは、

I = ma2 + MA2

と、計算される。この定義から明らかなように、慣性モーメントは、中心(中心軸)のとり方によってその値が変わる。中心として系の重心をとったとき、慣性モーメントは最小となる。すなわちもっとも回しやすい。

一般にN個の質点からなる系の慣性モーメントは、


I = \sum_i m_i r_i^2

と定義される。miはi番目の質点の質量、riは中心軸からの距離である。

対象が連続体であるときの慣性モーメントの定義は、


I = \int r^2 dm = \int \rho r^2 dV


となる。rは中心軸からの距離、dmは微小質量、ρは密度分布である。

剛体の角運動量 \boldsymbol L と角速度 \boldsymbol\omega の関係は


\boldsymbol L = I \boldsymbol\omega


と記述できる。角速度ベクトルと角運動量ベクトルが平行の場合は I はスカラーとなるが、一般の場合はテンソルとなり、慣性テンソルと呼ぶ。 すなわち、


\begin{pmatrix}L_x\\L_y\\L_z\end{pmatrix} = \begin{pmatrix}I_{xx}&-I_{xy}&-I_{xz} \\ -I_{yx}&I_{yy}&-I_{yz} \\ -I_{zx}&-I_{zy}&I_{zz}\end{pmatrix} \begin{pmatrix}\omega_x\\ \omega_y \\ \omega_z\end{pmatrix}


ここで、


I_{xx} = I_x = \int (y^2+z^2)\rho dV,\quad I_{yy} = I_y = \int (x^2+z^2)\rho dV,\quad I_{zz} = I_z = \int (x^2+y^2)\rho dV




I_{xy} = I_{yx} = \int xy\rho dV,\quad I_{xz} = I_{zx} = \int zx\rho dV,\quad I_{yz} = I_{zy} = \int  yz\rho dV

IxIyIz を(それぞれ x、 y、 z軸に関する)慣性モーメント、 IxyIyzIzx慣性乗積という。

ここで、慣性テンソル行列は実対称行列なので、適当な直交座標系 \{ e_1,\, e_2,\, e_3 \} をえらぶことで対角化(すなわち Ixy = Iyz = Izx = 0)することができ、そのときの座標軸を慣性主軸、 慣性モーメント \{ I_1,\, I_2,\, I_3 \} のことを主慣性モーメントと呼ぶ。慣性主軸座標系では角運動量は


\begin{pmatrix}L_1\\L_2\\L_3\end{pmatrix} = \begin{pmatrix}I_1&0&0\\0&I_2&0\\0&0&I_3\end{pmatrix} \begin{pmatrix}\omega_1\\ \omega_2\\ \omega_3\end{pmatrix}


と単純に表すことができる。

工学での応用として、回転軸に慣性モーメントの大きい回転体を取り付けた装置をフライホイール(はずみ車)という。これは、回転数の急激な変化を抑止したり、回転によるエネルギーを保存する目的で使用される。

関連項目 [編集]


モーメント (Wikipedia)

モーメント - Wikipediaからスクラップ:

モーメント



提供: フリー百科事典『ウィキペディア(Wikipedia)』







固定された回転軸をもつ系に対して、力を作用させた時の物理量の関係。力のモーメント \vec{\tau} と位置ベクトル \vec{r} と力 \vec{F} との関係(上の式)、および運動量のモーメント(角運動量)\vec{L} と位置ベクトル \vec{r} と運動量 \vec{p} との関係(下の式)。



力学において、原点 O から点 P へ向かう位置ベクトル \vec{r} と、点 P におけるベクトル量 \vec{A} との外積(ベクトル積) \vec{r} \times \vec{A} を、O 点まわりの \vec{A}モーメントという。また、ある軸まわりのモーメントは、ある軸方向の単位ベクトルを \vec{\lambda} とすると、混合3重積\vec{\lambda} \cdot \vec{r} \times \vec{A} で表される。こちらはスカラー量である。モーメントは、しばしば物体の回転運動を記述する際に利用される。


運動量のモーメント(角運動量) [編集]


例えば点 P にある質点運動量 \vec{p} を持って運動しているとすると、運動量のモーメントは \vec{r} \times \vec{p} と記述される。ここで、もし \vec{p}\vec{r} に平行であるならば \vec{r} \times \vec{p} は 0 となり、原点 O にいる観測者には、質点が \vec{r} 方向に沿って自分から遠ざかって行くか、あるいは自分に向かって近づいてくるように見えるだけである。しかし、\vec{r} \times \vec{p} が 0 でなければ、運動量 \vec{p}\vec{r} に垂直な成分を持ち、原点 O にいる観測者には、質点が自分のまわりを回転するように見えるであろう。それゆえ、\vec{r} \times \vec{p} は質点の回転運動を表す一つの量と考えることができる。これは一般に角運動量と呼ばれる。


力のモーメント、トルク [編集]


一方、\vec{A} として質点に作用する \vec{F} を考えることもできる。この場合は、\vec{r} \times \vec{F}力のモーメントと呼ばれ、角運動量の時間変化に関係する量となる。ある決まった回転軸のまわりの力のモーメントをトルクと呼ぶ。


関連項目 [編集]



トルク(Wikipedia)

トルク - Wikipediaからスクラップ:

トルク


提供: フリー百科事典『ウィキペディア(Wikipedia)』





固定された回転軸をもつ系に対して、力を作用させた時の物理量の関係。力のモーメント \vec{\tau} と位置ベクトル \vec{r} と力 \vec{F} との関係(上の式)、および角運動量 \vec{L} と位置ベクトル \vec{r} と運動量 \vec{p} との関係(下の式)。

トルクtorque)は、ある固定された回転軸を中心にはたらく、回転軸のまわりの力のモーメントである。一般的には「ねじりの強さ」として表される。力矩ねじりモーメントとも言う。

目次


[非表示]


概要 [編集]


トルクは、力と距離の(外積)で表される量(モーメント)である。力の単位はN(ニュートン)だが、トルクの単位はN・m(ニュートンメートル)である。トルクはおもに工学、とくにエンジン電動機発電機タービンなどの機械機械工学などで用いられることが多い。

物体を回転させるために必要な力は、どこを押すかによって異なり、一般に回転軸(中心)からの距離に反比例する(てこ参照)。一方、物体をある角度だけ回転させるトルクは、力を作用させる点によらない量であり、一定である。

あるトルクは同じ軸のまわりの別の作用点に働くトルクで置き換えることができる。同じ軸を中心とするトルク同士を合成したり、またひとつのトルクを複数のトルクに分解することもできる。トルクを平行で同じ大きさをもち、反対向きの2つの力にわけたとき、その力をとくに偶力とよぶ。

定義 [編集]



モンキーレンチにかかるトルク関係


物理学では、トルクNは次のように定義される。


\mathbf{N}=\mathbf{r} \times \mathbf{F}


ここでFは物体に加わる力、rは回転の軸からみた力の加わる点までの距離(ベクトル)を表す。トルクNベクトル量であり、Nの向きを進行方向とする右ねじ回りに物体を回転させる効果をもつ。Fが等しいとき、腕の長さrが長いほうが物体を回転させる効果 (N) が大きい。

トルクはFr外積量であるため、同じく力と移動距離の積で表される仕事の単位"Nm"に対しては、"N・m"と間に点を打って表記することによって区別する[要出典]。なお、仕事の解説についても、仕事が力と移動距離の積であることを表すために"N・m"と表記されることがあるので注意が必要である。

物体の慣性モーメントI角加速度α、トルクNの間には、ニュートンの運動方程式とよく似た関係が成り立つ。


I\mathbf{\alpha}=\mathbf{N}

回転運動と直線運動 [編集]


回転運動に関する量のあいだには、直線運動で成り立つ法則に対応する類似の法則を見出すことができる。これは法則が似るように回転運動での量を定義したものだからである。トルクは「力」そのものではなく「力のモーメント」であり、慣性モーメントは質量に距離の2乗をかけたものである。

回転運動と直線運動の対応一覧

回転運動
直進運動
変位
角度

\mathbf{\theta}
位置

\mathbf{r}

トルク

\mathbf{N}=\mathbf{r}\times\mathbf{F}


\mathbf{F}
速度
角速度

\omega={d\theta \over dt}={\mathbf{v} \over \mathbf{r}}
速度

\mathbf{v}={d\mathbf{r} \over dt}
質量
慣性モーメント

I = mr2
慣性質量

m
運動量
角運動量

\mathbf{L}=\mathbf{r}\times\mathbf{p}
運動量

\mathbf{p}=m\mathbf{v}
力と運動量
\mathbf{N}={d\mathbf{L} \over dt}
\mathbf{F}={d\mathbf{p} \over dt}
運動方程式
I\mathbf{\alpha}=\mathbf{N}
m\mathbf{a}=\mathbf{F}
運動エネルギー
{1\over 2}I\omega^2
{1\over 2}mv^2

関連項目 [編集]