⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalfunctions.cpp

📁 VC实现等值线编成的COM组件的源程序代码
💻 CPP
字号:
#include "stdafx.h"
#include "Triangulate.h"
#include "globalfunctions.h"

/*
	快速排序
*/
/*
	快速排序法对于大量数据的排序特别有用。其基本原理是:首先检查数据列表中的数
	据数,如果小于两个,则直接退出程序。如果有超过两个以上的数据,就选择一个分
	割点将数据分成两个部分,小于分割点的数据放在一组,其余的放在另一组,然后分
	别对两组数据排序。 
	通常分割点的数据是随机选取的。这样无论你的数据是否已被排列过,你所分割成的
	两个字列表的大小是差不多的。而只要两个子列表的大小差不多,该算法所需的步骤
	就是N * log(N) 步。对于使用比较法进行排序的算法来讲这是最快的方法。

	注意:C++中提供了一个快速排序函数qsort()
*/
/*
void quicksort(int src[],int low,int high)
{
	int i,j;
	int tmp;
	if(low<high)
	{
		i=low;
		j=high;
		tmp=src[low];	//选第一个值
		while(i<j)
		{
			while(i<j && src[j]>tmp)
				j--;
			if(i<j)
				src[i++]=src[j];
			while(i<j&&src[i]<=tmp)
				i++;
			if(i<j)
				src[j--]=src[i];
		}
		src[i]=tmp;

		quicksort(src,low,i-1);
		quicksort(src,i+1,high);
	}
}

*/


// 供C++快速排序函数qsort调用
int compare( const void *elem1, const void *elem2 )
{
	/* Compare all of both */
	XYZ e1 = *(XYZ *)elem1;
	XYZ e2 = *(XYZ *)elem2;
	
	if ( e1.x < e2.x ) 
		return -1;
	else if( e1.x == e2.x ) 
		return 0;
	else
		return 1;
}


XYZ::XYZ(double x0, double y0, double z0)
{
	x = x0;
	y = y0;
	z = z0;
}

XYZ::XYZ()
{
}



TRIANGLE::TRIANGLE()
{
	p1 = -1;
	p2 = -1;
	p3 = -1;
	t1 = NEIGHBOR_UNKNOWN;
	t2 = NEIGHBOR_UNKNOWN;
	t3 = NEIGHBOR_UNKNOWN;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -