d2cモジュール平面向け
ダウンロード
d2cモジュール Ver.1.06 (2021/05/03)
ダウンロード(2.44 MB)
内容
このパッケージはHSP3用モジュールです。
D2C(Dimension 2 Calculation)モジュールは、2D空間での計算において使用頻度が高い命令をまとめモジュールです。
簡単なベクトル演算や衝突判定などを行うことが出来ます。2Dゲームやツール開発などで活用ください。
ライセンス:NYSL
動作環境
- Windows10で動作確認済み。
- HSP3でのプログラミング作業にご利用ください。
インストール・アンインストール
バージョンアップ
doclibフォルダに作成したd2cmフォルダの内容を削除してください。上書きすると古いサンプルプログラムが残ったままになります。
あとは新規インストールと手順は同じです。
新規インストール
d2cm.hspをHSP3インストールフォルダのcommonフォルダにコピーしてください。残りのファイルはdoclibフォルダにd2cmフォルダを作成して、その中にすべてコピーしてください。これでインストール作業は完了です。
アンインストール
コピーしたファイルを全て削除すれば完了です。
サンプルスクリプト
ほぼすべての命令についてサンプルスクリプトを用意してあります。 説明文章だけではわかりにくい使い方の把握の参考にしてください。
サンプルのサムネイル画像もつけているので探しやすいと思います。
衝突判定
次の組み合わせの衝突判定が可能です。
点 | 線分 | 円 | 楕円 | カプセル | 矩形 | 回転矩形 | 多角形 | |
---|---|---|---|---|---|---|---|---|
点 | △ | △ | ● | ● | ● | ● | ● | ● |
線分 | ● | ● | ● | ● | ● | ● | ● | ● |
円 | ● | ● | ● | ▲ | ● | ○ | ○ | ○ |
楕円 | ● | ● | ▲ | ▲ | ○ | ○ | ○ | ○ |
カプセル | ● | ● | ● | ○ | ● | ○ | ○ | ○ |
矩形 | ● | ● | ○ | ○ | ○ | ● | ● | ● |
回転矩形 | ● | ● | ○ | ○ | ○ | ● | ● | ● |
多角形 | ● | ● | ○ | ○ | ○ | ● | ● | ● |
●▲:専用の衝突判定命令あり。
▲:判定精度はあまり高くありません。
○:多角形でその他の形状を再現して作成することで、多角形同士として判定した場合。
△:距離を計算できます。
ベンチマークテスト
衝突判定系の命令のベンチマークテストを行うスクリプトをつけました。 計算負荷の見積りに使用してください。
技術的解説
本モジュールが備えている一部の機能について、技術的な解説については「衝突判定」のページを参照してください。 移動物体の狙撃と影の作成について、実装方法を解説しています。
命令・関数の一覧
作成
d2cMakePolygon | 多角形を作成 |
描画
d2cDrawBox | 中空の矩形を描画 |
d2cDrawCapsule | カプセルを描画 |
d2cDrawCircle | 中空の円を描画 |
d2cDrawPolygon | 多角形を描画 |
d2cDrawStrtLine | 直線を描画 |
d2cDrawBoxF | 塗りつぶし矩形を描画 |
d2cDrawCircleF | 塗りつぶし円を描画 |
数学サポート命令
d2cGetIntersectionPos | 線分と線分の交点座標を取得 |
d2cGetNormalVector | 法線ベクトルを取得 |
d2cInnerProduct | 内積を算出 |
d2cRotate | 平面座標回転演算 |
d2cVectorNormalize | ベクトルを正規化 |
d2cVectorProduct | クロス積(外積)を算出 |
測定
d2cAngleByPoints | 3点による角度を計算 |
d2cDistance | 2点間の距離を算出 |
d2cDistancePoint2Line | 点から直線までの距離を取得 |
d2cGetCenterOfGravity | 多角形の重心座標を取得 |
d2cGetGaisetsuCircle | 三角形の外接円を計算 |
d2cGetGaisetsuCircleSquare | 矩形の外接円を計算 |
d2cLength | ベクトルの長さを算出 |
d2cPolygonArea | 多角形の面積を算出 |
衝突判定
d2cColCapsuleCapsule | カプセルとカプセルの衝突判定 |
d2cColCircleCapsule | 円とカプセルの衝突判定 |
d2cColCircleCircle | 円と円の衝突判定 |
d2cColEllipseEllipse | 楕円と楕円との衝突判定 |
d2cColInsideCapsule | 点とカプセルの衝突判定 |
d2cColInsideCircle | 点と円の衝突判定 |
d2cColInsideEllipse | 点と楕円との衝突判定 |
d2cColInsidePolygon | 点と多角形の衝突判定 |
d2cColInsideRSquare | 点と回転矩形の衝突判定 |
d2cColInsideSquare | 点と矩形の衝突判定 |
d2cColLineSgtCapsule | 線分とカプセルの衝突判定 |
d2cColLineSgtCircle | 線分と円の衝突判定 |
d2cColLineSgtEllipse | 線分と楕円の衝突判定 |
d2cColLineSgtLineSgt | 線分と線分の衝突判定 |
d2cColLineSgtPolygon | 線分と多角形の衝突判定 |
d2cColLineSgtRSquare | 線分と回転矩形の衝突判定 |
d2cColLineSgtSquare | 線分と矩形の衝突判定 |
d2cColPolygonPolygon | 多角形と多角形の衝突判定 |
d2cColRSquarePolygon | 回転矩形と多角形の衝突判定 |
d2cColRSquareRSquare | 回転矩形と回転矩形の衝突判定 |
d2cColSquarePolygon | 矩形と多角形の衝突判定 |
d2cColSquareSquare | 矩形と矩形の衝突判定 |
接線
d2cCreateShadowPolygon | 影を作成 |
d2cSetShadowOption | 影作成のオプションを設定 |
d2cTangentOfCapsule | カプセルの接線 |
d2cTangentOfCircle | 円の接線 |
d2cTangentOfEllipse | 楕円の接線 |
d2cTangentOfPolygon | 多角形の接線 |
d2cTangentOfRSquare | 回転矩形の接線 |
d2cTangentOfSquare | 矩形の接線 |
変換
d2cConvShape | 形状データを予備変換 |
d2cConvShape2 | 形状データを予備変換2 |
d2cConvShapeReverse | 多角形を裏返す |
軌道予測
d2cShot_SetTargetPrm | 目標の位置と速度を設定 |
d2cShot_SetShotPrm | 攻撃の位置と速度を設定 |
d2cShot_GetShotData | 攻撃の打ち出し設定を取得 |
履歴
2019/12/25 v1.00 | ・初公開版 |
2020/12/06 v1.01 |
・接線系の命令を追加 d2cCreateShadowPolygon d2cTangentOfCircle d2cTangentOfPolygon d2cTangentOfRSquare d2cTangentOfSquare ・マニュアルを全体的に修正 表記のゆらぎなどを修正。 |
2020/12/17 v1.02 |
・d2cCreateShadowPolygon 命令で、光の範囲境界付近で影が正しく生成されない不具合を修正。 ・d2cTangentOfEllipse 命令を追加。 ・d2cTangentOfCapsule 命令を追加。 ・マニュアルを全体的に修正 誤記や表記のゆらぎなどを修正。 |
2020/12/28 v1.03 |
・衝突判定関連の命令を追加。 d2cColCircleCapsule d2cColLineSgtEllipse d2cColLineSgtCapsule d2cColLineSgtCircle d2cColLineSgtPolygon d2cColLineSgtSquare d2cColLineSgtRSquare d2cColSquarePolygon d2cColRSquarePolygon ・d2cLength をマクロに変更。 ・d2cDraw系命令実行後のカレントポジションを図形の描画位置に変更。 ・サンプルをすべて見直し。 |
2021/01/30 v1.04 |
・d2cMakePolygon 命令を追加 ・d2cDrawBoxF 命令を追加 ・d2cDrawCircleF 命令を追加 ・サンプル01, 10, 11, 16 の修正。 ・サンプルスクリプトのサムネイル画像を追加。 ・ベンチマークテスト「ベンチ_….hsp」を追加。 |
2021/05/01 v1.05 |
・軌道予測関連の命令を追加 d2cShot_SetTargetPrm 命令を追加 d2cShot_SetShotPrm 命令を追加 d2cShot_GetShotData 命令を追加 |
2021/05/03 v1.06 | ・d2cShot_GetShotData 命令で、射出時の目標と攻撃の位置が同じ場合に衝突しないという計算結果を算出する不具合を修正。 |