ダウンロード

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クロス積(外積)を算出

測定

d2cAngleByPoints3点による角度を計算
d2cDistance2点間の距離を算出
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 命令で、射出時の目標と攻撃の位置が同じ場合に衝突しないという計算結果を算出する不具合を修正。
図形描画サンプル

▲図形描画サンプル

外接円

▲外接円

面積と重心

▲面積と重心

衝突判定

▲衝突判定

衝突判定 点と図形

▲衝突判定 点と図形

衝突判定 線分の交点

▲衝突判定 線分の交点

衝突判定 線分 衝突判定 円 衝突判定 カプセル 衝突判定 矩形 衝突判定 回転矩形 衝突判定 多角形

▲衝突判定

図形の接線

▲図形の接線

接線を使った影

▲接線を使った影

影のデモ

▲影のデモ

軌道予測 狙撃

▲軌道予測 狙撃