서로 다른 두 데이터의 통계 값인 Covariance(공분산), Correlation Coefficient(상관 계수)의 경우 SetCorrelated~를 사용하여 구할 두 데이터를 선택합니다.
Point Position의 데이터는 TPoint3, Point Color의 데이터는 CMultiVar의 형태로 값을 반환합니다.
Pre-Calculated Hold Flag 설정 시 Source Object를 바꾸지 않으면 미리 계산된 값을 반환합니다.
계산에 필요한 데이터가 없으면 Quiet NaN을 출력합니다.
Vertex 색의 데이터가 없는 경우 GetPointColor~ 사용 시
Face의 데이터가 없는 경우 GetSurfaceArea 사용 시
Source Object
Result Dialogue
Fig. 3D Object 통계 값
3 예제 코드
// 객체 생성
CStatistics3D statistics3D;
// 입력 3D 객체
CFL3DObject floSource;
// 입력 3D 객체 설정
statistics3D.SetSourceObject(floSource);
// 계산 값 보존 여부bool bPreCalculatedHold = true;
// 계산 값 보존 여부 설정
statistics3D.EnablePreCalculatedHold(bPreCalculatedHold);
// 위치 데이터 변수 정의
TPoint3<double> tpPositionMin;
TPoint3<double> tpPositionMax;
TPoint3<double> tpPositionSum;
TPoint3<double> tpPositionSumOfSquares;
TPoint3<double> tpPositionMean;
TPoint3<double> tpPositionMedian;
TPoint3<double> tpPositionVariance;
TPoint3<double> tpPositionStandardDeviation;
TPoint3<double> tpPositionCoefficientOfVariance;
TPoint3<double> tpPositionLowerQuartile;
TPoint3<double> tpPositionUpperQuartile;
double f64PositionCovariance;
double f64PositionCorrelationCoefficient;
// 위치 데이터 계산
statistics3D.GetPointPositionMin(tpPositionMin);
statistics3D.GetPointPositionMax(tpPositionMax);
statistics3D.GetPointPositionSum(tpPositionSum);
statistics3D.GetPointPositionSumOfSquares(tpPositionSumOfSquares);
statistics3D.GetPointPositionMean(tpPositionMean);
statistics3D.GetPointPositionMedian(tpPositionMedian);
statistics3D.GetPointPositionVariance(tpPositionVariance);
statistics3D.GetPointPositionStandardDeviation(tpPositionStandardDeviation);
statistics3D.GetPointPositionCoefficientOfVariance(tpPositionCoefficientOfVariance);
statistics3D.GetPointPositionLowerQuartile(tpPositionLowerQuartile);
statistics3D.GetPointPositionUpperQuartile(tpPositionUpperQuartile);
// 통계를 구할 두 위치 정의
CStatistics3D::EPointPosition eFirstPointPosition = CStatistics3D::EPointPosition_X;
CStatistics3D::EPointPosition eSecondPointPosition = CStatistics3D::EPointPosition_Y;
// 통계를 구할 두 위치 설정
statistics3D.SetCorrelatedPointPosition(eFirstPointPosition, eSecondPointPosition);
// 두 위치 데이터의 통계 값 계산
statistics3D.GetPointPositionCovariance(f64PositionCovariance);
statistics3D.GetPointPositionCorrelationCoefficient(f64PositionCorrelationCoefficient);
// 색 데이터 변수 정의
CMultiVar<double> mvColorMin;
CMultiVar<double> mvColorMax;
CMultiVar<double> mvColorSum;
CMultiVar<double> mvColorSumOfSquares;
CMultiVar<double> mvColorMean;
CMultiVar<double> mvColorMedian;
CMultiVar<double> mvColorVariance;
CMultiVar<double> mvColorStandardDeviation;
CMultiVar<double> mvColorCoefficientOfVariance;
CMultiVar<double> mvColorLowerQuartile;
CMultiVar<double> mvColorUpperQuartile;
double f64ColorCovariance;
double f64ColorCorrelationCoefficient;
// 색 데이터 계산
statistics3D.GetPointColorMin(mvColorMin);
statistics3D.GetPointColorMax(mvColorMax);
statistics3D.GetPointColorSum(mvColorSum);
statistics3D.GetPointColorSumOfSquares(mvColorSumOfSquares);
statistics3D.GetPointColorMean(mvColorMean);
statistics3D.GetPointColorMedian(mvColorMedian);
statistics3D.GetPointColorVariance(mvColorVariance);
statistics3D.GetPointColorStandardDeviation(mvColorStandardDeviation);
statistics3D.GetPointColorCoefficientOfVariance(mvColorCoefficientOfVariance);
statistics3D.GetPointColorLowerQuartile(mvColorLowerQuartile);
statistics3D.GetPointColorUpperQuartile(mvColorUpperQuartile);
// 통계를 구할 두 색 정의
CStatistics3D::EPointColor eFirstPointColor = CStatistics3D::EPointColor_B;
CStatistics3D::EPointColor eSecondPointColor = CStatistics3D::EPointColor_G;
// 통계를 구할 두 색 설정
statistics3D.SetCorrelatedPointColor(eFirstPointColor, eSecondPointColor);
// 두 색 데이터의 통계 값 계산
statistics3D.GetPointColorCovariance(f64ColorCovariance);
statistics3D.GetPointColorCorrelationCoefficient(f64ColorCorrelationCoefficient);
// 모델의 표면적 계산double f64SurfaceArea;
statistics3D.GetSurfaceArea(f64SurfaceArea);
// 객체 생성
CStatistics3D statistics3D = new CStatistics3D();
// 입력 3D 객체
CFL3DObject floSource = new CFL3DObject();
// 입력 3D 객체 설정
statistics3D.SetSourceObject(ref floSource);
// 계산 값 보존 여부bool bPreCalculatedHold = true;
// 계산 값 보존 여부 설정
statistics3D.EnablePreCalculatedHold(bPreCalculatedHold);
// 위치 데이터 변수 정의
TPoint3<double> tpPositionMin = new TPoint3<double>();
TPoint3<double> tpPositionMax = new TPoint3<double>();
TPoint3<double> tpPositionSum = new TPoint3<double>();
TPoint3<double> tpPositionSumOfSquares = new TPoint3<double>();
TPoint3<double> tpPositionMean = new TPoint3<double>();
TPoint3<double> tpPositionMedian = new TPoint3<double>();
TPoint3<double> tpPositionVariance = new TPoint3<double>();
TPoint3<double> tpPositionStandardDeviation = new TPoint3<double>();
TPoint3<double> tpPositionCoefficientOfVariance = new TPoint3<double>();
TPoint3<double> tpPositionLowerQuartile = new TPoint3<double>();
TPoint3<double> tpPositionUpperQuartile = new TPoint3<double>();
double f64PositionCovariance = 0;
double f64PositionCorrelationCoefficient = 0;
// 위치 데이터 계산
statistics3D.GetPointPositionMin(ref tpPositionMin);
statistics3D.GetPointPositionMax(ref tpPositionMax);
statistics3D.GetPointPositionSum(ref tpPositionSum);
statistics3D.GetPointPositionSumOfSquares(ref tpPositionSumOfSquares);
statistics3D.GetPointPositionMean(ref tpPositionMean);
statistics3D.GetPointPositionMedian(ref tpPositionMedian);
statistics3D.GetPointPositionVariance(ref tpPositionVariance);
statistics3D.GetPointPositionStandardDeviation(ref tpPositionStandardDeviation);
statistics3D.GetPointPositionCoefficientOfVariance(ref tpPositionCoefficientOfVariance);
statistics3D.GetPointPositionLowerQuartile(ref tpPositionLowerQuartile);
statistics3D.GetPointPositionUpperQuartile(ref tpPositionUpperQuartile);
// 통계를 구할 두 위치 정의
CStatistics3D.EPointPosition eFirstPointPosition = CStatistics3D.EPointPosition.X;
CStatistics3D.EPointPosition eSecondPointPosition = CStatistics3D.EPointPosition.Y;
// 통계를 구할 두 위치 설정
statistics3D.SetCorrelatedPointPosition(eFirstPointPosition, eSecondPointPosition);
// 두 위치 데이터의 통계 값 계산
statistics3D.GetPointPositionCovariance(ref f64PositionCovariance);
statistics3D.GetPointPositionCorrelationCoefficient(ref f64PositionCorrelationCoefficient);
// 색 데이터 변수 정의
CMultiVar<double> mvColorMin = new CMultiVar<double>();
CMultiVar<double> mvColorMax = new CMultiVar<double>();
CMultiVar<double> mvColorSum = new CMultiVar<double>();
CMultiVar<double> mvColorSumOfSquares = new CMultiVar<double>();
CMultiVar<double> mvColorMean = new CMultiVar<double>();
CMultiVar<double> mvColorMedian = new CMultiVar<double>();
CMultiVar<double> mvColorVariance = new CMultiVar<double>();
CMultiVar<double> mvColorStandardDeviation = new CMultiVar<double>();
CMultiVar<double> mvColorCoefficientOfVariance = new CMultiVar<double>();
CMultiVar<double> mvColorLowerQuartile = new CMultiVar<double>();
CMultiVar<double> mvColorUpperQuartile = new CMultiVar<double>();
double f64ColorCovariance = 0;
double f64ColorCorrelationCoefficient = 0;
// 색 데이터 계산
statistics3D.GetPointColorMin(ref mvColorMin);
statistics3D.GetPointColorMax(ref mvColorMax);
statistics3D.GetPointColorSum(ref mvColorSum);
statistics3D.GetPointColorSumOfSquares(ref mvColorSumOfSquares);
statistics3D.GetPointColorMean(ref mvColorMean);
statistics3D.GetPointColorMedian(ref mvColorMedian);
statistics3D.GetPointColorVariance(ref mvColorVariance);
statistics3D.GetPointColorStandardDeviation(ref mvColorStandardDeviation);
statistics3D.GetPointColorCoefficientOfVariance(ref mvColorCoefficientOfVariance);
statistics3D.GetPointColorLowerQuartile(ref mvColorLowerQuartile);
statistics3D.GetPointColorUpperQuartile(ref mvColorUpperQuartile);
// 통계를 구할 두 색 정의
CStatistics3D.EPointColor eFirstPointColor = CStatistics3D.EPointColor.B;
CStatistics3D.EPointColor eSecondPointColor = CStatistics3D.EPointColor.G;
// 통계를 구할 두 색 설정
statistics3D.SetCorrelatedPointColor(eFirstPointColor, eSecondPointColor);
// 두 색 데이터의 통계 값 계산
statistics3D.GetPointColorCovariance(ref f64ColorCovariance);
statistics3D.GetPointColorCorrelationCoefficient(ref f64ColorCorrelationCoefficient);
// 모델의 표면적 계산double f64SurfaceArea = 0;
statistics3D.GetSurfaceArea(ref f64SurfaceArea);
# 객체 생성
statistics3D = CStatistics3D()
# 입력 3D 객체
floSource = CFL3DObject()
# 입력 3D 객체 설정
statistics3D.SetSourceObject(floSource)
# 계산 값 보존 여부
bPreCalculatedHold = True# 계산 값 보존 여부 설정
statistics3D.EnablePreCalculatedHold(bPreCalculatedHold)
# 위치 데이터 변수 정의
tpPositionMin = TPoint3[Double]()
tpPositionMax = TPoint3[Double]()
tpPositionSum = TPoint3[Double]()
tpPositionSumOfSquares = TPoint3[Double]()
tpPositionMean = TPoint3[Double]()
tpPositionMedian = TPoint3[Double]()
tpPositionVariance = TPoint3[Double]()
tpPositionStandardDeviation = TPoint3[Double]()
tpPositionCoefficientOfVariance = TPoint3[Double]()
tpPositionLowerQuartile = TPoint3[Double]()
tpPositionUpperQuartile = TPoint3[Double]()
f64PositionCovariance = 0
f64PositionCorrelationCoefficient = 0# 위치 데이터 계산
statistics3D.GetPointPositionMin(tpPositionMin)
statistics3D.GetPointPositionMax(tpPositionMax)
statistics3D.GetPointPositionSum(tpPositionSum)
statistics3D.GetPointPositionSumOfSquares(tpPositionSumOfSquares)
statistics3D.GetPointPositionMean(tpPositionMean)
statistics3D.GetPointPositionMedian(tpPositionMedian)
statistics3D.GetPointPositionVariance(tpPositionVariance)
statistics3D.GetPointPositionStandardDeviation(tpPositionStandardDeviation)
statistics3D.GetPointPositionCoefficientOfVariance(tpPositionCoefficientOfVariance)
statistics3D.GetPointPositionLowerQuartile(tpPositionLowerQuartile)
statistics3D.GetPointPositionUpperQuartile(tpPositionUpperQuartile)
# 통계를 구할 두 위치 정의
eFirstPointPosition = CStatistics3D.EPointPosition.X
eSecondPointPosition = CStatistics3D.EPointPosition.Y
# 통계를 구할 두 위치 설정
statistics3D.SetCorrelatedPointPosition(eFirstPointPosition, eSecondPointPosition)
# 두 위치 데이터의 통계 값 계산
statistics3D.GetPointPositionCovariance(f64PositionCovariance)
statistics3D.GetPointPositionCorrelationCoefficient(f64PositionCorrelationCoefficient)
# 색 데이터 변수 정의
mvColorMin = CMultiVar[Double]()
mvColorMax = CMultiVar[Double]()
mvColorSum = CMultiVar[Double]()
mvColorSumOfSquares = CMultiVar[Double]()
mvColorMean = CMultiVar[Double]()
mvColorMedian = CMultiVar[Double]()
mvColorVariance = CMultiVar[Double]()
mvColorStandardDeviation = CMultiVar[Double]()
mvColorCoefficientOfVariance = CMultiVar[Double]()
mvColorLowerQuartile = CMultiVar[Double]()
mvColorUpperQuartile = CMultiVar[Double]()
f64ColorCovariance = 0
f64ColorCorrelationCoefficient = 0# 색 데이터 계산
statistics3D.GetPointColorMin(mvColorMin)
statistics3D.GetPointColorMax(mvColorMax)
statistics3D.GetPointColorSum(mvColorSum)
statistics3D.GetPointColorSumOfSquares(mvColorSumOfSquares)
statistics3D.GetPointColorMean(mvColorMean)
statistics3D.GetPointColorMedian(mvColorMedian)
statistics3D.GetPointColorVariance(mvColorVariance)
statistics3D.GetPointColorStandardDeviation(mvColorStandardDeviation)
statistics3D.GetPointColorCoefficientOfVariance(mvColorCoefficientOfVariance)
statistics3D.GetPointColorLowerQuartile(mvColorLowerQuartile)
statistics3D.GetPointColorUpperQuartile(mvColorUpperQuartile)
# 통계를 구할 두 색 정의
eFirstPointColor = CStatistics3D.EPointColor.B
eSecondPointColor = CStatistics3D.EPointColor.G
# 통계를 구할 두 색 설정
statistics3D.SetCorrelatedPointColor(eFirstPointColor, eSecondPointColor)
# 두 색 데이터의 통계 값 계산
statistics3D.GetPointColorCovariance(f64ColorCovariance)
statistics3D.GetPointColorCorrelationCoefficient(f64ColorCorrelationCoefficient)
# 모델의 표면적 계산
f64SurfaceArea = 0
statistics3D.GetSurfaceArea()
4 추가 함수 설명
Pre-Calculated Hold Flag 설정/가져오기
// 객체 생성
CStatistics3D statistics3D;
// 계산 값 보존 여부 설정bool bSetPreCalculatedHold = true;
statistics3D.EnablePreCalculatedHold(bSetPreCalculatedHold);
// 계산 값 보존 여부 가져오기bool bGetPreCalculatedHold = true;
bGetPreCalculatedHold = statistics3D.IsPreCalculatedHoldEnabled();
// 객체 생성
CStatistics3D statistics3D = new CStatistics3D();
// 계산 값 보존 여부 설정bool bSetPreCalculatedHold = true;
statistics3D.EnablePreCalculatedHold(bSetPreCalculatedHold);
// 계산 값 보존 여부 가져오기bool bGetPreCalculatedHold = true;
bGetPreCalculatedHold = statistics3D.IsPreCalculatedHoldEnabled();
# 객체 생성
statistics3D = CStatistics3D()
# 계산 값 보존 여부 설정
bSetPreCalculatedHold = True
statistics3D.EnablePreCalculatedHold(bSetPreCalculatedHold)
# 계산 값 보존 여부 가져오기
bGetPreCalculatedHold = True
bGetPreCalculatedHold = statistics3D.IsPreCalculatedHoldEnabled()