Vector2ライブラリを作ったので公開してみる。

アバター
keito94
記事: 264
登録日時: 8年前
連絡を取る:

Vector2ライブラリを作ったので公開してみる。

投稿記事 by keito94 » 8年前

これの続きです。

自作の二次元ベクトルライブラリの実装(と入ってもソースをプロジェクトに入れるだけだけど)を作ってみました。
(前にも言ったようにC++の簡単な知識さえあれば、意外と楽に作れるものなんですが…。)
二次元ベクトルの知識がなくてもOKですので自由に使ってください。(ライセンスフリーです。)

こちらで配布しています。
では楽しいDXライブラリプログラムライフを^^
追記:DIXQさんのご指摘を受けて、少し修正しました。
最後に編集したユーザー keito94 on 2017年5月20日(土) 12:16 [ 編集 1 回目 ]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by Dixq (管理人) » 8年前

これはライブラリとは言いません。
public変数はやめましょう

アバター
keito94
記事: 264
登録日時: 8年前
連絡を取る:

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by keito94 » 8年前

了解です…。
少し説明を修正したいと思います。
ですが、x,yをpublic変数にしているのは、DriectXのD3DXVECTOR2との互換性を考慮したからです。
最後に編集したユーザー keito94 on 2017年5月20日(土) 12:28 [ 編集 1 回目 ]

アバター
purin52002
記事: 235
登録日時: 8年前

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by purin52002 » 8年前

ソース拝見しました。
きれいにかけていると思います^^

ただ、operator*の内容がちょっと気になりました。
「x、yをメンバに持つ構造体のオペレータ」としてなら正しいと思うのですが、「二次元ベクトルのオペレータ」と考えると積、商の計算方法が間違ってるような気がします。

内積、外積、その他ベクトル演算ができてくれると嬉しいです。
あと個人的にヘッダオンリーなライブラリが好きです^p^

アバター
usao
記事: 1889
登録日時: 12年前

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by usao » 8年前

>public変数はやめましょう

こういうのは用途上,メンバがpublicでも問題ない類のもの(struct的な扱いのもの)だと思うけど.
(メンバにフルアクセスされて困るようなクラスではない)
(わざわざ隠蔽する利点は,メンバを float[2] で持つ形とかに変更できるくらい?)

どちらかと言えば,メンバがpublicであることよりも
constメンバ関数であるべきものがconstになっていない問題のせいで使い物にならないような.

ベクトルの演算を行う際には
・長さを得る
・長さの2乗値を得る (←実質,「長さ」が欲しいという話だけれども,わざわざルートをとらなくても目的を達せられる場面というのは多い)
・正規化(長さ1にする)
・単位ベクトルを返す
…みたいな操作は高頻度で使うので,他の公開メソッドを使えば実現できるものだとしても,メンバ関数に加えてしまうと便利かと.
あとは,「あるベクトルと直交するベクトルを返す」ヘルパとかがあると便利かな.

ISLe
記事: 2650
登録日時: 14年前

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by ISLe » 8年前

オフトピック
D3DXやXNAの後継としては、DirectX Mathがあります。
OpenGL Mathematics(GLM)というのもあります。

DirectX MathはSIMD最適化を優先していて、汎用ベクタ型のロード/ストアが明示的に必要なので、ラッパは有用かもしれません。

WindowsでもAndroidでも使える(ようになった)DXライブラリでは、コードの共通化という点でGLMが優位でありましょう。

アバター
keito94
記事: 264
登録日時: 8年前
連絡を取る:

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by keito94 » 8年前

usao さんが書きました: あとは,「あるベクトルと直交するベクトルを返す」ヘルパとかがあると便利かな.
なんだったら自分で作ってもいいのよ?

アバター
usao
記事: 1889
登録日時: 12年前

Re: Vector2ライブラリを作ったので公開してみる。

投稿記事 by usao » 8年前

>なんだったら自分で作ってもいいのよ?

そういったヘルパ的なものまではこのライブラリの範疇ではない という思想(?)なのかな?

まぁそこらへんの線引きは結構難しいですよね.
あれもこれもとやりすぎるとごてごてするし,なさ過ぎると利便性が無いものになるし.