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

📄 ugkglobalfunc.cpp

📁 linux下一款GIS程序源码
💻 CPP
字号:
/* UGKGlobalFunc.cpp */#include "UGKGlobalFunc.h"#include "KitSrc/ugk_environment.h"#include "KitSrc/ugk_memopr.h"#include "KitSrc/ugkglobal.h"#include <qtextcodec.h> #include <stdlib.h>QString ACSII2Unicode(const char *str){    static QTextCodec *gbk_codec = QTextCodec::codecForName("GBK");    QString retStr = gbk_codec->toUnicode(str);    return retStr;}QString GB2Unicode( const QCString &localfileName ){    QTextCodec *gbk_codec = QTextCodec::codecForName("GB2312");    QString retStr = gbk_codec->toUnicode(localfileName);        return retStr;}QCString Unicod2GB( const QString &fileName ){    QTextCodec *gbk_codec = QTextCodec::codecForName("GB2312");    QCString gbkstr=gbk_codec->fromUnicode(fileName);    return gbkstr;}QColor ObtainColor( int IntColor){    IntColor = IntColor & 0x00FFFFFF;    int r,g,b;    b = IntColor & 0x000000FF;    IntColor=IntColor>>8;    g = IntColor & 0x000000FF;    IntColor=IntColor>>8;    r = IntColor & 0x000000FF;        QColor ret =QColor(r,g,b);    return ret;    }QString getBaseName(QString fullname){       int a = fullname.findRev('/');    int b = fullname.findRev('.');    QString tmp = fullname.left(b);    QString ret = QString("  ")+tmp.right(b-a-1);    return ret;}bool  LineLine(LineCoord ln1,LineCoord ln2){    double k1,k2;    double ax1,ay1,ax2,ay2;     double bx1,by1,bx2,by2;    ax1 = ln1.start.x;    ay1 = ln1.start.y;    ax2 = ln1.end.x;    ay2 = ln1.end.y;    bx1 = ln2.start.x;    by1 = ln2.start.y;    bx2 = ln2.end.x;    by2 = ln2.end.y;    if( (ax2==ax1)&&(bx2==bx1) ) //两条都是垂直	return FALSE;    else if( (ax2==ax1)&&(bx2!=bx1) )    {	    if( (ax1>MIN(bx1,bx2))&&(ax1<MAX(bx1,bx2)) )		return TRUE;	    else		return FALSE;    }    else if( (ax2!= ax1)&&(bx2==bx1) )    {	    if( (bx1>MIN(ax1,ax2))&&(bx1<MAX(ax1,ax2)) )		return TRUE;	    else		return FALSE;    }    else    {	    k1 = 1.0*(ay2-ay1)/(ax2-ax1);	    k2 = 1.0*(by2-by1)/(bx2-bx1);	    if(k1==k2)		return FALSE;	    else	    {		double px,py;		px = (by1-bx1*k2+ax1*k1-ay1)/(k1-k2);		py = k1*(px-ax1)+ay1;		if( (px>MIN(ax1,ax2))&&(px<MAX(ax1,ax2)) )		    return TRUE;		else		    return FALSE;	    }    }}bool  LineRect(LineCoord ln,QRect rect){    int x1,x2,y1,y2;    x1 = rect.left();    x2 = rect.right();    y1 = rect.top();    y2 = rect.bottom();    LineCoord left,top,right,bottom;    left.start.x =x1;    left.start.y = y1;    left.end.x = x1;    left.end.y = y2;    top.start.x = x1;    top.start.y = y1;    top.end.x = x2;    top.end.y = y1;    right.start.x = x2;    right.start.y = y1;    right.end.x = x2;    right.end.x = y2;    bottom.start.x = x1;    bottom.start.y = y2;    bottom.end.x = x2;    bottom.end.y = y2;        int points=0;    //先检查是否在内部    if( (ln.start.x>x1)&&(ln.start.x<x2)&&       (ln.start.y>y1)&&(ln.start.y<y2) )	points++;    if( (ln.end.x>x1)&&(ln.end.x<x2)&&	(ln.end.y>y1)&&(ln.end.y<y2) )	points++;    if( LineLine(ln,left))	points++;    if( LineLine(ln,top))	points++;    if( LineLine(ln,right))	points++;     if( LineLine(ln,bottom))	points++;    if(points>=2)	return TRUE;    else	return FALSE;}void  mountUdisk(){#ifdef SITSANGAPP    system("mount -t vfat -o iocharset=cp936 /dev/sda1  /Udisk"); #endif}void  umountUdisk(){#ifdef SITSANGAPP    system("umount /dev/sda1"); #endif    }

⌨️ 快捷键说明

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