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

📄 1.txt

📁 离散点生成等高线的程序
💻 TXT
字号:
void onopenfile() //读取等高线数据,并绘制
{
  FILE *fp;
  if((fp=fopen("E:\\DZXTEM.txt","r"))==NULL)
  AfxMessageBox("打开文件失败,请把DZXTEM.txt存成E:\\DZXTEM.txt",MB_OK);
  AfxMessageBox("读取数据并绘制等高线请稍等···",MB_OK);
  while(!feof(fp))
  {  
	fscanf(fp,"%s",tt);SJ[n][0]=atoi(tt);
	fscanf(fp,"%s",tt);SJ[n][1]=atoi(tt);
	fscanf(fp,"%s",tt);SJ[n][2]=atof(tt);
	fscanf(fp,"%s",tt);SJ[n][3]=atof(tt);
	fscanf(fp,"%s",tt);SJ[n][4]=atof(tt);
	fscanf(fp,"%s\n",tt);SJ[n][5]=atof(tt);
	n++;
  }	
	fclose(fp);//关
    AcGePoint3d startPt,endPt;
    AcGePoint3d spt,ept;
    AcGePoint3d st,et;
//	if(IDOK==AfxMessageBox("是否绘等高线?",MB_OKCANCEL))   		
		for(int z=0;z<n;z++)
		{	
			AcDbLayerTable *pLayerTable;
			acdbHostApplicationServices()->workingDatabase()
				->getSymbolTable(pLayerTable, AcDb::kForWrite);	
			AcDbLayerTableRecord *pLayerTableRecord=new AcDbLayerTableRecord;
			pLayerTableRecord->setName("COUNTOUR");
		/*
		
					AcCmColor color;
					pLayerTableRecord->setColor(color(RGB(0,0,255)));
		*/
		    pLayerTable->add(pLayerTableRecord);
			pLayerTable->close();
			pLayerTableRecord->close();
			if (SJ[z][5]==33&&SJ[z+1][5]==31)
			{
			AcGePoint3d  st(SJ[z+1][2]-2994000.0,SJ[z+1][3]-525000.0,0.0);
			AcGePoint3d et(SJ[z+2][2]-2994000.0,SJ[z+2][3]-525000.0,0.0);
			AcDbLine*pLine=new AcDbLine(spt,ept);
			if (SJ[z][0]==12)
			{
				pLine->setColorIndex(8);//暗黄
			}
			else
				pLine->setColorIndex(160);//蓝色
			AcDbBlockTable *pBlockTable;
			acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
			AcDbBlockTableRecord *pBlockTableRecord;
			pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
			pBlockTable->close();
			AcDbObjectId lineId;
			pBlockTableRecord->appendAcDbEntity(lineId,pLine);
			pBlockTableRecord->close();
			pLine->close(); 
			}
			else if((SJ[z][5]==31&&SJ[z+1][5]==32)||(SJ[z][5]==32||(SJ[z][5]==32&&SJ[z+1][5]==33)))
			{
			AcGePoint3d startPt(SJ[z][2]-2994000.0,SJ[z][3]-525000.0,0.0);
			AcGePoint3d endPt(SJ[z+1][2]-2994000.0,SJ[z+1][3]-525000.0,0.0);
			AcDbLine*pLine=new AcDbLine(startPt,endPt);
			if (SJ[z][0]==12)
			{
                 pLine->setColorIndex(8);//灰色
			}
			else 
			    pLine->setColorIndex(160);//蓝色
			AcDbBlockTable *pBlockTable;
			acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
			AcDbBlockTableRecord *pBlockTableRecord;
			pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
			pBlockTable->close();
			AcDbObjectId lineId;
			pBlockTableRecord->appendAcDbEntity(lineId,pLine);
			pBlockTableRecord->close();
			pLine->setLayer("COUNTOUR");
			pLine->close();
			}	
		}
			 
		AfxMessageBox("等高线绘制完成!",MB_OK);
}	

⌨️ 快捷键说明

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