StdAfx.h

Summary
StdAfx.h
Constants
General Defines
Types
double **
double *
Coord座標値用クラスを定義
Variables
x,y,z,dmy三次元座標値(x, y, z)及び,汎用としてdmyを用意
Functions
+Coord同士の足し算(AddCoord())
/Coord同士の割り算(DivCoord())
/Coordとdoubleとの割り算(オーバーロード)
&Coord同士の内積(CalcInnerProduct())
&&Coord同士の外積(CalcOuterProduct())
FRAME同次変換行列用構造体
DispStat表示属性用構造体
グローバルな関数の定義
Functions(3次元ベクトル幾何演算)
InitCoord座標値の初期化
InitCoord座標値の初期化(オーバーロード)
InitCoord座標値の初期化(オーバーロード)
AddCoord座標値の足し算
AddCoord座標値の足し算(オーバーロード)
AddCoord座標値の足し算(オーバーロード)
DivCoord座標値の割り算
DivCoord座標値の割り算(オーバーロード)
DivCoord座標値の割り算(オーバーロード)
MulCoord座標値の掛け算(ベクトルの内積,外積ではないので注意)
MulCoord座標値の掛け算(オーバーロード)
MulCoord座標値の掛け算(オーバーロード)
SubCoord座標値の引き算
SubCoord座標値の引き算(オーバーロード)
SubCoord座標値の引き算(オーバーロード)
SetCoord座標値を代入
SetCoord座標値を代入(オーバーロード)
CopyCoord座標値群をコピー
DiffCoord座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す
DiffCoord座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定))
AbsCoord座標値の絶対値を返す
ZoroCoord(0,0,0)の場合にKOD_TRUEを返す
CalcEuclidユークリッド距離をもとめる
CalcDistance2点間のユークリッド距離を求める
CalcRotVec任意のベクトルを原点を通る任意軸周りに回転させたベクトルを求める(3D平面)
CalcVecAngle2つのベクトルのなす角を求める
CalcAnglePlaneVec平面と直線とのなす角を求める
NormalizeVec3次元ベクトルを正規化(単位ベクトル化)
NormalizeVec3次元ベクトルを正規化(単位ベクトル化)(オーバーロード)
CalcInnerProduct内積を求める
CalcInnerProduct内積を求める(オーバーロード)
CalcOuterProduct外積を求める
CalcInterDivPt2点間の内分点を求める
CalcOrthoProjection任意の点を任意の平面へ正射影する
CalcDistPtToPlane任意の点から任意の平面までの距離を求める
CalcScalarTriProductスカラー三重積を求める
CalcNormalLine任意の点から任意の直線へ下ろした点を求める
Arc_CP円の中心点(vec[0])から円上に接する任意の2本の接線が交わる点へのベクトル(中心角0<θ<π)
IsPointInPolygon注目点の多角形内外判別
CalcNormVecFrom3Pts空間上の3点からなる平面の法線ベクトルを求める
Functions(2次元ベクトル幾何演算)
AddCoord2D座標値の足し算 (2D Ver.)
AddCoord2D座標値の足し算(オーバーロード) (2D Ver.)
AddCoord2D座標値の足し算(オーバーロード) (2D Ver.)
DivCoord2D座標値の割り算 (2D Ver.)
DivCoord2D座標値の割り算(オーバーロード) (2D Ver.)
DivCoord2D座標値の割り算(オーバーロード) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)
SubCoord2D座標値の引き算 (2D Ver.)
SubCoord2D座標値の引き算(オーバーロード) (2D Ver.)
SubCoord2D座標値の引き算(オーバーロード) (2D Ver.)
SetCoord2D座標値を代入 (2D Ver.)
SetCoord2Dオーバーロード (2D Ver.)
CopyCoord2D座標値群をコピー (2D Ver.)
DiffCoord2D座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す (2D Ver.)
DiffCoord2D座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定)) (2D Ver.)
AbsCoord2D座標値の絶対値を返す (2D Ver.)
ZoroCoord2D(0,0,0)の場合にKOD_TRUEを返す (2D Ver.)
CalcEuclid2Dユークリッド距離をもとめる (2D Ver.)
CalcDistance2D2次元座標上での2点間のユークリッド距離を算出 (2D Ver.)
CalcVecAngle2D2つのベクトルのなす角を求める (2D Ver.)
CalcRotVec2D任意のベクトルを回転させたベクトルを求める(2D平面)
CalcOuterProduct2D外積を求める (2D Ver.)
ClacPolygonArea2D2D平面上の多角形の符号付き面積を得る
DiscriminateCW2D2D平面上の多角形が時計回りか反時計回りかを判別する
Functions(同次変換行列、回転行列の演算)
MulFrameCoord同次変換行列と座標値(3Dベクトル)との掛け算
MulFrameCoord同次変換行列と座標値(3Dベクトル)との掛け算(オーバーロード)
MulFrame同次変換行列の掛け算
InvFrame同次変換行列の逆行列を得る
RotToZYZEuler回転行列をZYZオイラー角へ変換
InitFrameFRAMEの初期化
Functions(多次元ベクトル、多次元行列の演算)
InitVector1次元配列の初期化(引数:ベクトル,配列長)
InitMatrix2次元配列の初期化
CopyVectorベクトルのコピー
AddMxMx行列同士の足し算
MulMxMx行列同士の掛け算
MulMxVec行列とベクトルの掛け算
MulMxVec行列と座標値ベクトルの掛け算
MulMxCoordCoordで表現される3x3行列とCoordベクトルとの掛け算
MulMxCoord3x3行列とCoordベクトルとの掛け算
TranMx転置行列を得る
TranMx転置行列を得る(オーバーロード)
TranMx転置行列を得る(オーバーロード)
Gauss連立1次方程式の解を求める
Gauss連立1次方程式の解を求める(オーバーロード)
LU_SolverLU分解の結果から連立1次方程式を解く
LU_SolverLU分解の結果から連立1次方程式を解く(オーバーロード)
LULU分解
MatInv逆行列を求める
MatInv33x3の逆行列
MatInv22x2の逆行列
Functions(数値計算)
DegToRad角度単位をdegreeからradianへ
RadToDeg角度単位をradianからdegreeへ
CalcCubicEquation3次方程式の解を求める
CalcQuadraticEquation2次方程式の解を求める
CalcLinearEquation1次方程式の解を求める
nCr2項係数(nCrの組合せ総数)を求める
Factorial自然数nの階乗を求める
Round四捨五入
Functions(描画関連)
DrawPoint点を描画
DrawPoints点群を描画
DrawVectorベクトルを描画
DrawLine2点間に線分を描画
SetColorStatカラーステータスを変更
DrawSolidCone四角錐を描画する
Functions(メモリー関連)
NewMatrix2次元double型配列のメモリー確保
NewVector1次元double型配列のメモリー確保
FreeMatrix2次元double型配列のメモリー解放
FreeVector1次元double型配列のメモリー解放
NewCoord11次元Coord型配列のメモリー確保
FreeCoord11次元Coord型配列のメモリー解放
NewCoord22次元Coord型配列のメモリー確保
FreeCoord22次元Coord型配列のメモリー解放
NewCoord33次元Coord型配列のメモリー確保
FreeCoord33次元Coord型配列のメモリー解放
Functions(その他)
sgn符号判定
CheckZero値がAPPROX_ZEROの範囲で0であるかチェック
CheckRange指定した値が指定した範囲内であるかをチェック
CheckMag2つの値の大小比較
BubbleSortバブルソート(基本交換法)
BubbleSortオーバーロード
QCmpクイックソート
ReverseCoord配列の反転操作
Reversedouble配列の反転操作
CatCoordある配列の後ろに新たな配列を繋げる
CheckTheSamePoints同一点を除去する
CheckTheSamePoints同一点を除去する
CheckTheSamePoints2D2D平面内の同一点を除去する
CoordToArrayCoordをdouble配列に代入
CoordToArray2DCoordをdouble配列に代入

Constants

General Defines

KOD_ERRERRORのシンボル(-1)
KOD_FALSE偽のシンボル(0)
KOD_TRUE真のシンボル(1)
KOD_DONE実行済みを示すシンボル(2)
KOD_ONEDGE点がエッジ上にあることを示すシンボル(2)
KOD_LARGEa > b のシンボル(0)
KOD_SMALLa < b のシンボル(1)
KOD_EQUALa = b のシンボル(2)
KOD_LARGE_EQa >= b のシンボル(3)
KOD_SMALL_EQa <= b のシンボル(4)
LOW_LOW_ACCURACY低低精度のシンボル(-1)
LOW_ACCURACY低精度のシンボル(0)
MID_ACCURACY普通精度のシンボル(1)
HIGH_ACCURACY高精度のシンボル(2)
FNAMEMAXファイル名の最大文字数(256)
PI円周率(3.141592653589793)
APPROX_ZERO_L_Lゼロと見なせる値(低低精度)(1.0e-3)
APPROX_ZERO_Lゼロと見なせる値(低精度)(1.0e-6)
APPROX_ZEROゼロと見なせる値(普通精度)(1.0e-9)
APPROX_ZERO_Hゼロと見なせる値(高精度)(1.0e-12)
LOOPCOUNTMAX収束計算回数の条件(10000)
COORDINDEX3次元座標を示すインデックス数(3)
QUADINDEX3次元同次座標を示すインデックス数(4)
CW正転のシンボル(0)
CCW逆転のシンボル(1)

Types

double **

Matrixdouble形の2次元配列をMatrixとして定義

double *

Vectordouble形の1次元配列をVectorとして定義

Coord

class Coord

座標値用クラスを定義

Summary
Variables
x,y,z,dmy三次元座標値(x, y, z)及び,汎用としてdmyを用意
Functions
+Coord同士の足し算(AddCoord())
/Coord同士の割り算(DivCoord())
/Coordとdoubleとの割り算(オーバーロード)
&Coord同士の内積(CalcInnerProduct())
&&Coord同士の外積(CalcOuterProduct())

Variables

x,y,z,dmy

double x,y,z,dmy

三次元座標値(x, y, z)及び,汎用としてdmyを用意

Functions

+

Coord operator +(Coord)

Coord同士の足し算(AddCoord())

/

Coord operator /(Coord)

Coord同士の割り算(DivCoord())

/

Coord operator /(double)

Coordとdoubleとの割り算(オーバーロード)

&

double operator &(Coord)

Coord同士の内積(CalcInnerProduct())

&&

Coord operator &&(Coord)

Coord同士の外積(CalcOuterProduct())

FRAME

同次変換行列用構造体

Variables

Coord Rot[COORINDEX]// 回転行列
Coord Trl// 並進成分

DispStat

表示属性用構造体

Variables

float Color[4]// 色(r,g,b,?)

グローバルな関数の定義

Summary
Functions(3次元ベクトル幾何演算)
InitCoord座標値の初期化
InitCoord座標値の初期化(オーバーロード)
InitCoord座標値の初期化(オーバーロード)
AddCoord座標値の足し算
AddCoord座標値の足し算(オーバーロード)
AddCoord座標値の足し算(オーバーロード)
DivCoord座標値の割り算
DivCoord座標値の割り算(オーバーロード)
DivCoord座標値の割り算(オーバーロード)
MulCoord座標値の掛け算(ベクトルの内積,外積ではないので注意)
MulCoord座標値の掛け算(オーバーロード)
MulCoord座標値の掛け算(オーバーロード)
SubCoord座標値の引き算
SubCoord座標値の引き算(オーバーロード)
SubCoord座標値の引き算(オーバーロード)
SetCoord座標値を代入
SetCoord座標値を代入(オーバーロード)
CopyCoord座標値群をコピー
DiffCoord座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す
DiffCoord座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定))
AbsCoord座標値の絶対値を返す
ZoroCoord(0,0,0)の場合にKOD_TRUEを返す
CalcEuclidユークリッド距離をもとめる
CalcDistance2点間のユークリッド距離を求める
CalcRotVec任意のベクトルを原点を通る任意軸周りに回転させたベクトルを求める(3D平面)
CalcVecAngle2つのベクトルのなす角を求める
CalcAnglePlaneVec平面と直線とのなす角を求める
NormalizeVec3次元ベクトルを正規化(単位ベクトル化)
NormalizeVec3次元ベクトルを正規化(単位ベクトル化)(オーバーロード)
CalcInnerProduct内積を求める
CalcInnerProduct内積を求める(オーバーロード)
CalcOuterProduct外積を求める
CalcInterDivPt2点間の内分点を求める
CalcOrthoProjection任意の点を任意の平面へ正射影する
CalcDistPtToPlane任意の点から任意の平面までの距離を求める
CalcScalarTriProductスカラー三重積を求める
CalcNormalLine任意の点から任意の直線へ下ろした点を求める
Arc_CP円の中心点(vec[0])から円上に接する任意の2本の接線が交わる点へのベクトル(中心角0<θ<π)
IsPointInPolygon注目点の多角形内外判別
CalcNormVecFrom3Pts空間上の3点からなる平面の法線ベクトルを求める
Functions(2次元ベクトル幾何演算)
AddCoord2D座標値の足し算 (2D Ver.)
AddCoord2D座標値の足し算(オーバーロード) (2D Ver.)
AddCoord2D座標値の足し算(オーバーロード) (2D Ver.)
DivCoord2D座標値の割り算 (2D Ver.)
DivCoord2D座標値の割り算(オーバーロード) (2D Ver.)
DivCoord2D座標値の割り算(オーバーロード) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)
MulCoord2D座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)
SubCoord2D座標値の引き算 (2D Ver.)
SubCoord2D座標値の引き算(オーバーロード) (2D Ver.)
SubCoord2D座標値の引き算(オーバーロード) (2D Ver.)
SetCoord2D座標値を代入 (2D Ver.)
SetCoord2Dオーバーロード (2D Ver.)
CopyCoord2D座標値群をコピー (2D Ver.)
DiffCoord2D座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す (2D Ver.)
DiffCoord2D座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定)) (2D Ver.)
AbsCoord2D座標値の絶対値を返す (2D Ver.)
ZoroCoord2D(0,0,0)の場合にKOD_TRUEを返す (2D Ver.)
CalcEuclid2Dユークリッド距離をもとめる (2D Ver.)
CalcDistance2D2次元座標上での2点間のユークリッド距離を算出 (2D Ver.)
CalcVecAngle2D2つのベクトルのなす角を求める (2D Ver.)
CalcRotVec2D任意のベクトルを回転させたベクトルを求める(2D平面)
CalcOuterProduct2D外積を求める (2D Ver.)
ClacPolygonArea2D2D平面上の多角形の符号付き面積を得る
DiscriminateCW2D2D平面上の多角形が時計回りか反時計回りかを判別する
Functions(同次変換行列、回転行列の演算)
MulFrameCoord同次変換行列と座標値(3Dベクトル)との掛け算
MulFrameCoord同次変換行列と座標値(3Dベクトル)との掛け算(オーバーロード)
MulFrame同次変換行列の掛け算
InvFrame同次変換行列の逆行列を得る
RotToZYZEuler回転行列をZYZオイラー角へ変換
InitFrameFRAMEの初期化
Functions(多次元ベクトル、多次元行列の演算)
InitVector1次元配列の初期化(引数:ベクトル,配列長)
InitMatrix2次元配列の初期化
CopyVectorベクトルのコピー
AddMxMx行列同士の足し算
MulMxMx行列同士の掛け算
MulMxVec行列とベクトルの掛け算
MulMxVec行列と座標値ベクトルの掛け算
MulMxCoordCoordで表現される3x3行列とCoordベクトルとの掛け算
MulMxCoord3x3行列とCoordベクトルとの掛け算
TranMx転置行列を得る
TranMx転置行列を得る(オーバーロード)
TranMx転置行列を得る(オーバーロード)
Gauss連立1次方程式の解を求める
Gauss連立1次方程式の解を求める(オーバーロード)
LU_SolverLU分解の結果から連立1次方程式を解く
LU_SolverLU分解の結果から連立1次方程式を解く(オーバーロード)
LULU分解
MatInv逆行列を求める
MatInv33x3の逆行列
MatInv22x2の逆行列
Functions(数値計算)
DegToRad角度単位をdegreeからradianへ
RadToDeg角度単位をradianからdegreeへ
CalcCubicEquation3次方程式の解を求める
CalcQuadraticEquation2次方程式の解を求める
CalcLinearEquation1次方程式の解を求める
nCr2項係数(nCrの組合せ総数)を求める
Factorial自然数nの階乗を求める
Round四捨五入
Functions(描画関連)
DrawPoint点を描画
DrawPoints点群を描画
DrawVectorベクトルを描画
DrawLine2点間に線分を描画
SetColorStatカラーステータスを変更
DrawSolidCone四角錐を描画する
Functions(メモリー関連)
NewMatrix2次元double型配列のメモリー確保
NewVector1次元double型配列のメモリー確保
FreeMatrix2次元double型配列のメモリー解放
FreeVector1次元double型配列のメモリー解放
NewCoord11次元Coord型配列のメモリー確保
FreeCoord11次元Coord型配列のメモリー解放
NewCoord22次元Coord型配列のメモリー確保
FreeCoord22次元Coord型配列のメモリー解放
NewCoord33次元Coord型配列のメモリー確保
FreeCoord33次元Coord型配列のメモリー解放
Functions(その他)
sgn符号判定
CheckZero値がAPPROX_ZEROの範囲で0であるかチェック
CheckRange指定した値が指定した範囲内であるかをチェック
CheckMag2つの値の大小比較
BubbleSortバブルソート(基本交換法)
BubbleSortオーバーロード
QCmpクイックソート
ReverseCoord配列の反転操作
Reversedouble配列の反転操作
CatCoordある配列の後ろに新たな配列を繋げる
CheckTheSamePoints同一点を除去する
CheckTheSamePoints同一点を除去する
CheckTheSamePoints2D2D平面内の同一点を除去する
CoordToArrayCoordをdouble配列に代入
CoordToArray2DCoordをdouble配列に代入

Functions(3次元ベクトル幾何演算)

InitCoord

void InitCoord(Coord *)

座標値の初期化

InitCoord

void InitCoord(Coord *,
 int)

座標値の初期化(オーバーロード)

InitCoord

Coord InitCoord()

座標値の初期化(オーバーロード)

AddCoord

Coord AddCoord(Coord,
Coord)

座標値の足し算

AddCoord

Coord AddCoord(Coord,
double)

座標値の足し算(オーバーロード)

AddCoord

Coord AddCoord(Coord,
double,
double,
double)

座標値の足し算(オーバーロード)

DivCoord

Coord DivCoord(Coord,
Coord)

座標値の割り算

DivCoord

Coord DivCoord(Coord,
double)

座標値の割り算(オーバーロード)

DivCoord

Coord DivCoord(Coord,
double,
double,
double)

座標値の割り算(オーバーロード)

MulCoord

Coord MulCoord(Coord,
Coord)

座標値の掛け算(ベクトルの内積,外積ではないので注意)

MulCoord

Coord MulCoord(Coord,
double)

座標値の掛け算(オーバーロード)

MulCoord

Coord MulCoord(Coord,
double,
double,
double)

座標値の掛け算(オーバーロード)

SubCoord

Coord SubCoord(Coord,
Coord)

座標値の引き算

SubCoord

Coord SubCoord(Coord,
double)

座標値の引き算(オーバーロード)

SubCoord

Coord SubCoord(Coord,
double,
double,
double)

座標値の引き算(オーバーロード)

SetCoord

Coord SetCoord(Coord)

座標値を代入

SetCoord

Coord SetCoord(double,
double,
double)

座標値を代入(オーバーロード)

CopyCoord

void CopyCoord(Coord *,
 int,
Coord *)

座標値群をコピー

DiffCoord

int DiffCoord(Coord,
Coord)

座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す

DiffCoord

int DiffCoord(Coord,
Coord,
double)

座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定))

AbsCoord

Coord AbsCoord(Coord)

座標値の絶対値を返す

ZoroCoord

int ZoroCoord(Coord)

(0,0,0)の場合にKOD_TRUEを返す

CalcEuclid

double CalcEuclid(Coord)

ユークリッド距離をもとめる

CalcDistance

double CalcDistance(Coord,
Coord)

2点間のユークリッド距離を求める

CalcRotVec

Coord CalcRotVec(Coord,
Coord,
double)

任意のベクトルを原点を通る任意軸周りに回転させたベクトルを求める(3D平面)

CalcVecAngle

double CalcVecAngle(Coord,
Coord)

2つのベクトルのなす角を求める

CalcAnglePlaneVec

double CalcAnglePlaneVec(Coord,
Coord)

平面と直線とのなす角を求める

NormalizeVec

Coord NormalizeVec(Coord)

3次元ベクトルを正規化(単位ベクトル化)

NormalizeVec

Coord NormalizeVec(double,
double,
double)

3次元ベクトルを正規化(単位ベクトル化)(オーバーロード)

CalcInnerProduct

double CalcInnerProduct(Coord,
Coord)

内積を求める

CalcInnerProduct

double CalcInnerProduct(Coord,
double,
double,
double)

内積を求める(オーバーロード)

CalcOuterProduct

Coord CalcOuterProduct(Coord,
Coord)

外積を求める

CalcInterDivPt

Coord CalcInterDivPt(Coord,
Coord,
double)

2点間の内分点を求める

CalcOrthoProjection

Coord CalcOrthoProjection(Coord,
Coord,
Coord)

任意の点を任意の平面へ正射影する

CalcDistPtToPlane

double CalcDistPtToPlane(Coord,
Coord,
Coord)

任意の点から任意の平面までの距離を求める

CalcScalarTriProduct

double CalcScalarTriProduct(Coord,
Coord,
Coord)

スカラー三重積を求める

CalcNormalLine

Coord CalcNormalLine(Coord,
Coord,
Coord)

任意の点から任意の直線へ下ろした点を求める

Arc_CP

Coord Arc_CP(Coord,
Coord,
double)

円の中心点(vec[0])から円上に接する任意の2本の接線が交わる点へのベクトル(中心角0<θ<π)

IsPointInPolygon

int IsPointInPolygon( Coord,
Coord *,
 int)

注目点の多角形内外判別

CalcNormVecFrom3Pts

Coord CalcNormVecFrom3Pts(Coord,
Coord,
Coord)

空間上の3点からなる平面の法線ベクトルを求める

Functions(2次元ベクトル幾何演算)

AddCoord2D

Coord AddCoord2D(Coord,
Coord)

座標値の足し算 (2D Ver.)

AddCoord2D

Coord AddCoord2D(Coord,
double)

座標値の足し算(オーバーロード) (2D Ver.)

AddCoord2D

Coord AddCoord2D(Coord,
double,
double)

座標値の足し算(オーバーロード) (2D Ver.)

DivCoord2D

Coord DivCoord2D(Coord,
Coord)

座標値の割り算 (2D Ver.)

DivCoord2D

Coord DivCoord2D(Coord,
double)

座標値の割り算(オーバーロード) (2D Ver.)

DivCoord2D

Coord DivCoord2D(Coord,
double,
double)

座標値の割り算(オーバーロード) (2D Ver.)

MulCoord2D

Coord MulCoord2D(Coord,
Coord)

座標値の掛け算(ベクトルの内積,外積ではないので注意) (2D Ver.)

MulCoord2D

Coord MulCoord2D(Coord,
double)

座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)

MulCoord2D

Coord MulCoord2D(Coord,
double,
double)

座標値の掛け算(ベクトルの内積,外積ではないので注意)(オーバーロード) (2D Ver.)

SubCoord2D

Coord SubCoord2D(Coord,
Coord)

座標値の引き算 (2D Ver.)

SubCoord2D

Coord SubCoord2D(Coord,
double)

座標値の引き算(オーバーロード) (2D Ver.)

SubCoord2D

Coord SubCoord2D(Coord,
double,
double)

座標値の引き算(オーバーロード) (2D Ver.)

SetCoord2D

Coord SetCoord2D(Coord)

座標値を代入 (2D Ver.)

SetCoord2D

Coord SetCoord2D(double,
double)

オーバーロード (2D Ver.)

CopyCoord2D

void CopyCoord2D(Coord *,
 int,
Coord *)

座標値群をコピー (2D Ver.)

DiffCoord2D

int DiffCoord2D(Coord,
Coord)

座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す (2D Ver.)

DiffCoord2D

int DiffCoord2D(Coord,
Coord,
double)

座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す(オーバーロード(精度指定)) (2D Ver.)

AbsCoord2D

Coord AbsCoord2D(Coord)

座標値の絶対値を返す (2D Ver.)

ZoroCoord2D

int ZoroCoord2D(Coord)

(0,0,0)の場合にKOD_TRUEを返す (2D Ver.)

CalcEuclid2D

double CalcEuclid2D(double,
double)

ユークリッド距離をもとめる (2D Ver.)

CalcDistance2D

double CalcDistance2D(Coord,
Coord)

2次元座標上での2点間のユークリッド距離を算出 (2D Ver.)

CalcVecAngle2D

double CalcVecAngle2D(Coord,
Coord)

2つのベクトルのなす角を求める (2D Ver.)

CalcRotVec2D

Coord CalcRotVec2D(Coord,
double)

任意のベクトルを回転させたベクトルを求める(2D平面)

CalcOuterProduct2D

double CalcOuterProduct2D(Coord,
Coord)

外積を求める (2D Ver.)

ClacPolygonArea2D

double ClacPolygonArea2D(Coord [],
 int)

2D平面上の多角形の符号付き面積を得る

DiscriminateCW2D

int DiscriminateCW2D(Coord [],
 int)

2D平面上の多角形が時計回りか反時計回りかを判別する

Functions(同次変換行列、回転行列の演算)

MulFrameCoord

Coord MulFrameCoord(double[][3],
double[],
Coord)

同次変換行列と座標値(3Dベクトル)との掛け算

MulFrameCoord

Coord MulFrameCoord(FRAME,
Coord)

同次変換行列と座標値(3Dベクトル)との掛け算(オーバーロード)

MulFrame

FRAME MulFrame(FRAME ,
 FRAME)

同次変換行列の掛け算

InvFrame

FRAME InvFrame(FRAME)

同次変換行列の逆行列を得る

RotToZYZEuler

Coord RotToZYZEuler(Coord [])

回転行列をZYZオイラー角へ変換

InitFrame

void InitFrame(FRAME *)

FRAMEの初期化

Functions(多次元ベクトル、多次元行列の演算)

InitVector

void InitVector(Vector,
int)

1次元配列の初期化(引数:ベクトル,配列長)

InitMatrix

void InitMatrix(Matrix,
int,
int)

2次元配列の初期化

CopyVector

void CopyVector(Vector,
int,
Vector)

ベクトルのコピー

AddMxMx

void AddMxMx(Matrix,
Matrix,
Matrix,
int,
int)

行列同士の足し算

MulMxMx

void MulMxMx(Matrix,
int,
int,
Matrix,
int,
int,
Matrix)

行列同士の掛け算

MulMxVec

void MulMxVec(Matrix,
int,
int,
Vector,
int,
Vector)

行列とベクトルの掛け算

MulMxVec

void MulMxVec( Matrix,
 int,
 int,
Coord *,
Coord *)

行列と座標値ベクトルの掛け算

MulMxCoord

Coord MulMxCoord(Coord [],
 Coord)

Coordで表現される3x3行列とCoordベクトルとの掛け算

MulMxCoord

Coord MulMxCoord(Matrix,
Coord)

3x3行列とCoordベクトルとの掛け算

TranMx

void TranMx(Matrix,
int,
int,
Matrix)

転置行列を得る

TranMx

void TranMx(Coord **,
 int,
 int,
Coord **)

転置行列を得る(オーバーロード)

TranMx

void TranMx(Coord [],
Coord [])

転置行列を得る(オーバーロード)

Gauss

double Gauss(int,
Matrix,
Vector,
Vector)

連立1次方程式の解を求める

Gauss

double Gauss( int,
 Matrix,
Coord *,
Coord *)

連立1次方程式の解を求める(オーバーロード)

LU_Solver

void LU_Solver( int,
 Matrix,
 Vector,
int *,
 Vector)

LU分解の結果から連立1次方程式を解く

LU_Solver

void LU_Solver( int,
 Matrix,
Coord *,
int *,
Coord *)

LU分解の結果から連立1次方程式を解く(オーバーロード)

LU

double LU( int,
 Matrix,
int *)

LU分解

MatInv

double MatInv(int,
Matrix,
Matrix)

逆行列を求める

MatInv3

double MatInv3(Matrix,
Matrix)

3x3の逆行列

MatInv2

double MatInv2(Matrix,
Matrix)

2x2の逆行列

Functions(数値計算)

DegToRad

double DegToRad(double degree)

角度単位をdegreeからradianへ

RadToDeg

double RadToDeg(double radian)

角度単位をradianからdegreeへ

CalcCubicEquation

int CalcCubicEquation(double *,
double *)

3次方程式の解を求める

CalcQuadraticEquation

int CalcQuadraticEquation(double *,
double *)

2次方程式の解を求める

CalcLinearEquation

int CalcLinearEquation(double *,
double *)

1次方程式の解を求める

nCr

int nCr(int n,
int r)

2項係数(nCrの組合せ総数)を求める

Factorial

int Factorial(int n)

自然数nの階乗を求める

Round

double Round(double)

四捨五入

Functions(描画関連)

DrawPoint

void DrawPoint( Coord,
 double,
 double,
double [])

点を描画

DrawPoints

void DrawPoints(Coord *,
 int,
 double,
 double,
double [])

点群を描画

DrawVector

void DrawVector( Coord,
 Coord,
 double,
 double,
double [])

ベクトルを描画

DrawLine

void DrawLine( Coord,
 Coord,
 double,
double [])

2点間に線分を描画

SetColorStat

void SetColorStat(DispStat *ds,  
float r,  
float g,  
float b,  
float a = 0.5)

カラーステータスを変更

DrawSolidCone

void DrawSolidCone(double,
double)

四角錐を描画する

Functions(メモリー関連)

NewMatrix

Matrix NewMatrix(int,
int)

2次元double型配列のメモリー確保

NewVector

Vector NewVector(int)

1次元double型配列のメモリー確保

FreeMatrix

void FreeMatrix(Matrix,
int)

2次元double型配列のメモリー解放

FreeVector

void FreeVector(Vector)

1次元double型配列のメモリー解放

NewCoord1

Coord *NewCoord1(int)

1次元Coord型配列のメモリー確保

FreeCoord1

void FreeCoord1(Coord *)

1次元Coord型配列のメモリー解放

NewCoord2

Coord **NewCoord2(int,
int)

2次元Coord型配列のメモリー確保

FreeCoord2

void FreeCoord2(Coord **,
 int)

2次元Coord型配列のメモリー解放

NewCoord3

Coord ***NewCoord3(int,
int,
int)

3次元Coord型配列のメモリー確保

FreeCoord3

void FreeCoord3(Coord ***,
 int,
 int)

3次元Coord型配列のメモリー解放

Functions(その他)

sgn

double sgn(double)

符号判定

CheckZero

int CheckZero(double,
int)

値がAPPROX_ZEROの範囲で0であるかチェック

CheckRange

int CheckRange(double,
double,
double,
int)

指定した値が指定した範囲内であるかをチェック

CheckMag

int CheckMag(double,
double,
int)

2つの値の大小比較

BubbleSort

void BubbleSort(int[],
int)

バブルソート(基本交換法)

BubbleSort

void BubbleSort(double[],
int)

オーバーロード

QCmp

int QCmp(const void *,
const void *)

クイックソート

Reverse

void Reverse(Coord [],
 int)

Coord配列の反転操作

Reverse

void Reverse(double [],
 int)

double配列の反転操作

CatCoord

int CatCoord(Coord [],
Coord [],
 int,
 int,
 int)

ある配列の後ろに新たな配列を繋げる

CheckTheSamePoints

int CheckTheSamePoints(Coord *,
 int)

同一点を除去する

CheckTheSamePoints

int CheckTheSamePoints(double *,
 int)

同一点を除去する

CheckTheSamePoints2D

int CheckTheSamePoints2D(Coord *,
 int)

2D平面内の同一点を除去する

CoordToArray

void CoordToArray( Coord,
double [])

Coordをdouble配列に代入

CoordToArray2D

void CoordToArray2D( Coord,
double [])

Coordをdouble配列に代入

class Coord
座標値用クラスを定義
double x,y,z,dmy
三次元座標値(x, y, z)及び,汎用としてdmyを用意
Coord operator +(Coord)
Coord同士の足し算(AddCoord())
Coord operator /(Coord)
Coord同士の割り算(DivCoord())
double operator &(Coord)
Coord同士の内積(CalcInnerProduct())
void InitCoord(Coord *)
座標値の初期化
Coord AddCoord(Coord,
Coord)
座標値の足し算
Coord DivCoord(Coord,
Coord)
座標値の割り算
Coord MulCoord(Coord,
Coord)
座標値の掛け算(ベクトルの内積,外積ではないので注意)
Coord SubCoord(Coord,
Coord)
座標値の引き算
Coord SetCoord(Coord)
座標値を代入
void CopyCoord(Coord *,
 int,
Coord *)
座標値群をコピー
int DiffCoord(Coord,
Coord)
座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す
Coord AbsCoord(Coord)
座標値の絶対値を返す
int ZoroCoord(Coord)
(0,0,0)の場合にKOD_TRUEを返す
double CalcEuclid(Coord)
ユークリッド距離をもとめる
double CalcDistance(Coord,
Coord)
2点間のユークリッド距離を求める
Coord CalcRotVec(Coord,
Coord,
double)
任意のベクトルを原点を通る任意軸周りに回転させたベクトルを求める(3D平面)
double CalcVecAngle(Coord,
Coord)
2つのベクトルのなす角を求める
double CalcAnglePlaneVec(Coord,
Coord)
平面と直線とのなす角を求める
Coord NormalizeVec(Coord)
3次元ベクトルを正規化(単位ベクトル化)
double CalcInnerProduct(Coord,
Coord)
内積を求める
Coord CalcOuterProduct(Coord,
Coord)
外積を求める
Coord CalcInterDivPt(Coord,
Coord,
double)
2点間の内分点を求める
Coord CalcOrthoProjection(Coord,
Coord,
Coord)
任意の点を任意の平面へ正射影する
double CalcDistPtToPlane(Coord,
Coord,
Coord)
任意の点から任意の平面までの距離を求める
double CalcScalarTriProduct(Coord,
Coord,
Coord)
スカラー三重積を求める
Coord CalcNormalLine(Coord,
Coord,
Coord)
任意の点から任意の直線へ下ろした点を求める
Coord Arc_CP(Coord,
Coord,
double)
円の中心点(vec[0])から円上に接する任意の2本の接線が交わる点へのベクトル(中心角0<θ<π)
int IsPointInPolygon( Coord,
Coord *,
 int)
注目点の多角形内外判別
Coord CalcNormVecFrom3Pts(Coord,
Coord,
Coord)
空間上の3点からなる平面の法線ベクトルを求める
Coord AddCoord2D(Coord,
Coord)
座標値の足し算 (2D Ver.)
Coord DivCoord2D(Coord,
Coord)
座標値の割り算 (2D Ver.)
Coord MulCoord2D(Coord,
Coord)
座標値の掛け算(ベクトルの内積,外積ではないので注意) (2D Ver.)
Coord SubCoord2D(Coord,
Coord)
座標値の引き算 (2D Ver.)
Coord SetCoord2D(Coord)
座標値を代入 (2D Ver.)
void CopyCoord2D(Coord *,
 int,
Coord *)
座標値群をコピー (2D Ver.)
int DiffCoord2D(Coord,
Coord)
座標値が同じならKOD_TRUE、異なっているならKOD_FALSEを返す (2D Ver.)
Coord AbsCoord2D(Coord)
座標値の絶対値を返す (2D Ver.)
int ZoroCoord2D(Coord)
(0,0,0)の場合にKOD_TRUEを返す (2D Ver.)
double CalcEuclid2D(double,
double)
ユークリッド距離をもとめる (2D Ver.)
double CalcDistance2D(Coord,
Coord)
2次元座標上での2点間のユークリッド距離を算出 (2D Ver.)
double CalcVecAngle2D(Coord,
Coord)
2つのベクトルのなす角を求める (2D Ver.)
Coord CalcRotVec2D(Coord,
double)
任意のベクトルを回転させたベクトルを求める(2D平面)
double CalcOuterProduct2D(Coord,
Coord)
外積を求める (2D Ver.)
double ClacPolygonArea2D(Coord [],
 int)
2D平面上の多角形の符号付き面積を得る
int DiscriminateCW2D(Coord [],
 int)
2D平面上の多角形が時計回りか反時計回りかを判別する
Coord MulFrameCoord(double[][3],
double[],
Coord)
同次変換行列と座標値(3Dベクトル)との掛け算
FRAME MulFrame(FRAME ,
 FRAME)
同次変換行列の掛け算
FRAME InvFrame(FRAME)
同次変換行列の逆行列を得る
Coord RotToZYZEuler(Coord [])
回転行列をZYZオイラー角へ変換
void InitFrame(FRAME *)
FRAMEの初期化
void InitVector(Vector,
int)
1次元配列の初期化(引数:ベクトル,配列長)
void InitMatrix(Matrix,
int,
int)
2次元配列の初期化
void CopyVector(Vector,
int,
Vector)
ベクトルのコピー
void AddMxMx(Matrix,
Matrix,
Matrix,
int,
int)
行列同士の足し算
void MulMxMx(Matrix,
int,
int,
Matrix,
int,
int,
Matrix)
行列同士の掛け算
void MulMxVec(Matrix,
int,
int,
Vector,
int,
Vector)
行列とベクトルの掛け算
Coord MulMxCoord(Coord [],
 Coord)
Coordで表現される3x3行列とCoordベクトルとの掛け算
void TranMx(Matrix,
int,
int,
Matrix)
転置行列を得る
double Gauss(int,
Matrix,
Vector,
Vector)
連立1次方程式の解を求める
void LU_Solver( int,
 Matrix,
 Vector,
int *,
 Vector)
LU分解の結果から連立1次方程式を解く
double LU( int,
 Matrix,
int *)
LU分解
double MatInv(int,
Matrix,
Matrix)
逆行列を求める
double MatInv3(Matrix,
Matrix)
3x3の逆行列
double MatInv2(Matrix,
Matrix)
2x2の逆行列
double DegToRad(double degree)
角度単位をdegreeからradianへ
double RadToDeg(double radian)
角度単位をradianからdegreeへ
int CalcCubicEquation(double *,
double *)
3次方程式の解を求める
int CalcQuadraticEquation(double *,
double *)
2次方程式の解を求める
int CalcLinearEquation(double *,
double *)
1次方程式の解を求める
int nCr(int n,
int r)
2項係数(nCrの組合せ総数)を求める
int Factorial(int n)
自然数nの階乗を求める
double Round(double)
四捨五入
void DrawPoint( Coord,
 double,
 double,
double [])
点を描画
void DrawPoints(Coord *,
 int,
 double,
 double,
double [])
点群を描画
void DrawVector( Coord,
 Coord,
 double,
 double,
double [])
ベクトルを描画
void DrawLine( Coord,
 Coord,
 double,
double [])
2点間に線分を描画
void SetColorStat(DispStat *ds,  
float r,  
float g,  
float b,  
float a = 0.5)
カラーステータスを変更
void DrawSolidCone(double,
double)
四角錐を描画する
Matrix NewMatrix(int,
int)
2次元double型配列のメモリー確保
Vector NewVector(int)
1次元double型配列のメモリー確保
void FreeMatrix(Matrix,
int)
2次元double型配列のメモリー解放
void FreeVector(Vector)
1次元double型配列のメモリー解放
Coord *NewCoord1(int)
1次元Coord型配列のメモリー確保
void FreeCoord1(Coord *)
1次元Coord型配列のメモリー解放
Coord **NewCoord2(int,
int)
2次元Coord型配列のメモリー確保
void FreeCoord2(Coord **,
 int)
2次元Coord型配列のメモリー解放
Coord ***NewCoord3(int,
int,
int)
3次元Coord型配列のメモリー確保
void FreeCoord3(Coord ***,
 int,
 int)
3次元Coord型配列のメモリー解放
double sgn(double)
符号判定
int CheckZero(double,
int)
値がAPPROX_ZEROの範囲で0であるかチェック
int CheckRange(double,
double,
double,
int)
指定した値が指定した範囲内であるかをチェック
int CheckMag(double,
double,
int)
2つの値の大小比較
void BubbleSort(int[],
int)
バブルソート(基本交換法)
int QCmp(const void *,
const void *)
クイックソート
void Reverse(Coord [],
 int)
Coord配列の反転操作
int CatCoord(Coord [],
Coord [],
 int,
 int,
 int)
ある配列の後ろに新たな配列を繋げる
int CheckTheSamePoints(Coord *,
 int)
同一点を除去する
int CheckTheSamePoints2D(Coord *,
 int)
2D平面内の同一点を除去する
void CoordToArray( Coord,
double [])
Coordをdouble配列に代入
void CoordToArray2D( Coord,
double [])
Coordをdouble配列に代入