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

📄 igrid.c

📁 有限元学习研究用源代码(老外的),供科研人员参考
💻 C
📖 第 1 页 / 共 5 页
字号:
    static double  tcornery2 = (DEFAULTPAPERTOP - DEFAULTPAPERBOTTOM) / 25.0;
    static double  tcornerx3 = (DEFAULTPAPERRIGHT - DEFAULTPAPERLEFT) / 100.0;
    static double  tcornery3 = (DEFAULTPAPERTOP - DEFAULTPAPERBOTTOM) / 25.0;
    static int     tdiv1 = 4, tdiv2 = 4;
    HWND    hep, hsigma, hmu, hmu_sigma, hxloc, hyloc,
	    hcornerx1, hcornery1, hcornerx2, hcornery2,
	    hcornerx3, hcornery3, hdiv1, hdiv2;
    HDC     hdc;
    PAINTSTRUCT ps;
    dPOINT  gcenter;
    block   *tmpblk;
    COUNT   totalcount, nscount;
    HMENU   hMenu ;

    switch(message)
      {

      case WM_INITDIALOG:

	if(quadblockselected == NULL){

	  sprintf(sepsilon, "%lg", tepsilon);
	  sprintf(ssigma,   "%lg", tsigma);
	  sprintf(smu,      "%lg", tmu);
	  sprintf(ssigma_mu,"%lg", tsigma_mu);
	  sprintf(sxloc,    "%lg", txloc);
	  sprintf(syloc,    "%lg", tyloc);
	  sprintf(scornerx1,"%lg", tcornerx1);
	  sprintf(scornery1,"%lg", tcornery1);
	  sprintf(scornerx2,"%lg", tcornerx2);
	  sprintf(scornery2,"%lg", tcornery2);
	  sprintf(scornerx3,"%lg", tcornerx3);
	  sprintf(scornery3,"%lg", tcornery3);
	  sprintf(sdiv1,     "%d",  tdiv1);
	  sprintf(sdiv2,     "%d",  tdiv2);

	  hep    = GetDlgItem(hDlg, EPSILON);
	  SetWindowText(hep, sepsilon);

	  hsigma = GetDlgItem(hDlg, SIGMA);
	  SetWindowText(hsigma, ssigma);

	  hmu    = GetDlgItem(hDlg, MU);
	  SetWindowText(hmu, smu);

	  hmu_sigma = GetDlgItem(hDlg, SIGMA_MU);
	  SetWindowText(hmu_sigma, ssigma_mu);

	  hyloc = GetDlgItem(hDlg, YLOC);
	  SetWindowText(hyloc, syloc);

	  hxloc = GetDlgItem(hDlg, XLOC);
	  SetWindowText(hxloc, sxloc);

	  hcornerx1 = GetDlgItem(hDlg, CORNERX1);
	  SetWindowText(hcornerx1, scornerx1);

	  hcornery1 = GetDlgItem(hDlg, CORNERY1);
	  SetWindowText(hcornery1, scornery1);

	  hcornerx2 = GetDlgItem(hDlg, CORNERX2);
	  SetWindowText(hcornerx2, scornerx2);

	  hcornery2 = GetDlgItem(hDlg, CORNERY2);
	  SetWindowText(hcornery2, scornery2);

	  hcornerx3 = GetDlgItem(hDlg, CORNERX3);
	  SetWindowText(hcornerx3, scornerx3);

	  hcornery3 = GetDlgItem(hDlg, CORNERY3);
	  SetWindowText(hcornery3, scornery3);

	  hdiv1 = GetDlgItem(hDlg, COLUMN);
	  SetWindowText(hdiv1, sdiv1);

	  hdiv2 = GetDlgItem(hDlg, ROW);
	  SetWindowText(hdiv2, sdiv2);

	}
	else{

	  tepsilon = quadblockselected->epsilon;
	  sprintf(sepsilon, "%lg", tepsilon);
	  tsigma = quadblockselected->sigma;
	  sprintf(ssigma, "%lg", tsigma);
	  tmu = quadblockselected->mu;
	  sprintf(smu, "%lg", tmu);
	  tsigma_mu = quadblockselected->sigma_mu;
	  sprintf(ssigma_mu, "%lg", tsigma_mu);

	  txloc = quadblockselected->xloc;
	  sprintf(sxloc, "%lg", txloc);
	  tyloc = quadblockselected->yloc;
	  sprintf(syloc, "%lg", tyloc);
	  tcornerx1 = quadblockselected->cornerx1;
	  sprintf(scornerx1, "%lg", tcornerx1);
	  tcornery1 = quadblockselected->cornery1;
	  sprintf(scornery1, "%lg", tcornery1);
	  tcornerx2 = quadblockselected->cornerx2;
	  sprintf(scornerx2, "%lg", tcornerx2);
	  tcornery2 = quadblockselected->cornery2;
	  sprintf(scornery2, "%lg", tcornery2);
	  tcornerx3 = quadblockselected->cornerx3;
	  sprintf(scornerx3, "%lg", tcornerx3);
	  tcornery3 = quadblockselected->cornery3;
	  sprintf(scornery3, "%lg", tcornery3);

	  tdiv1 = quadblockselected->div1;
	  sprintf(sdiv1, "%d", tdiv1);
	  tdiv2 = quadblockselected->div2;
	  sprintf(sdiv2, "%d", tdiv2);

	  hep    = GetDlgItem(hDlg, EPSILON);
	  SetWindowText(hep, sepsilon);

	  hsigma = GetDlgItem(hDlg, SIGMA);
	  SetWindowText(hsigma, ssigma);

	  hmu    = GetDlgItem(hDlg, MU);
	  SetWindowText(hmu, smu);

	  hmu_sigma = GetDlgItem(hDlg, SIGMA_MU);
	  SetWindowText(hmu_sigma, ssigma_mu);

	  hyloc = GetDlgItem(hDlg, YLOC);
	  SetWindowText(hyloc, syloc);

	  hxloc = GetDlgItem(hDlg, XLOC);
	  SetWindowText(hxloc, sxloc);

	  hcornerx1 = GetDlgItem(hDlg, CORNERX1);
	  SetWindowText(hcornerx1, scornerx1);

	  hcornery1 = GetDlgItem(hDlg, CORNERY1);
	  SetWindowText(hcornery1, scornery1);

	  hcornerx2 = GetDlgItem(hDlg, CORNERX2);
	  SetWindowText(hcornerx2, scornerx2);

	  hcornery2 = GetDlgItem(hDlg, CORNERY2);
	  SetWindowText(hcornery2, scornery2);

	  hcornerx3 = GetDlgItem(hDlg, CORNERX3);
	  SetWindowText(hcornerx3, scornerx3);

	  hcornery3 = GetDlgItem(hDlg, CORNERY3);
	  SetWindowText(hcornery3, scornery3);

	  hdiv1 = GetDlgItem(hDlg, COLUMN);
	  SetWindowText(hdiv1, sdiv1);

	  hdiv2 = GetDlgItem(hDlg, ROW);
	  SetWindowText(hdiv2, sdiv2);

	}

	return TRUE;

      case WM_COMMAND:

	switch(wParam)
	  {
	  case EPSILON:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tepsilon = atof((const char *)sepsilon);
		if(tepsilon <= 1.0){
		  SetDlgItemText(hDlg, EPSILON, "1.0");
		  tepsilon = 1.0;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, EPSILON, sepsilon, 12);
	      break;
	    }
	  return TRUE;

	  case SIGMA:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tsigma = atof((const char *)ssigma);
		if(tsigma < 0){
		  SetDlgItemText(hDlg, SIGMA, "0.0");
		  tsigma = 0.0;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, SIGMA, ssigma, 12);
	      break;
	    }
	  return TRUE;

	  case MU:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tmu = atof((const char *)smu);
		if(tmu < 1.0){
		  SetDlgItemText(hDlg, MU, "1.0");
		  tmu = 1.0;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, MU, smu, 12);
	      break;
	    }
	  return TRUE;

	  case SIGMA_MU:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tsigma_mu = atof((const char *)ssigma_mu);
		if(tsigma_mu < 0.0 ){
		  SetDlgItemText(hDlg, SIGMA_MU, "0.0");
		  tsigma_mu = 0.0;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, SIGMA_MU, ssigma_mu, 12);
	      break;
	    }
	  return TRUE;

	  case XLOC:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		txloc = atof((const char *)sxloc);
		if(txloc < papersize.left){
		  sprintf(sxloc, "%lg", papersize.left);
		  SetDlgItemText(hDlg, XLOC, sxloc);
		  txloc = papersize.left;
		}
		if(txloc > papersize.right){
		  sprintf(sxloc, "%lg", papersize.right);
		  SetDlgItemText(hDlg, XLOC, sxloc);
		  txloc = papersize.right;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, XLOC, sxloc, 12);
	      break;
	    }

	  case YLOC:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tyloc = atof((const char *)syloc);
		if(tyloc < papersize.bottom){
		  sprintf(syloc, "%lg", papersize.bottom);
		  SetDlgItemText(hDlg, YLOC, syloc);
		  tyloc = papersize.bottom;
		}
		if(tyloc > papersize.top){
		  sprintf(syloc, "%lg", papersize.top);
		  SetDlgItemText(hDlg, YLOC, syloc);
		  tyloc = papersize.top;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, YLOC, syloc, 12);
	      break;
	    }

	  return TRUE;

	  case CORNERX1:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornerx1 = atof((const char *)scornerx1);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERX1, scornerx1, 12);
	      break;
	    }
	  return TRUE;


	  case CORNERY1:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornery1 = atof((const char *)scornery1);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERY1, scornery1, 12);
	      break;
	    }
	  return TRUE;

	  case CORNERX2:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornerx2 = atof((const char *)scornerx2);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERX2, scornerx2, 12);
	      break;
	    }
	  return TRUE;


	  case CORNERY2:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornery2 = atof((const char *)scornery2);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERY2, scornery2, 12);
	      break;
	    }
	  return TRUE;

	  case CORNERX3:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornerx3 = atof((const char *)scornerx3);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERX3, scornerx3, 12);
	      break;
	    }
	  return TRUE;


	  case CORNERY3:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tcornery3 = atof((const char *)scornery3);
	      break;

	      default:
		GetDlgItemText(hDlg, CORNERY3, scornery3, 12);
	      break;
	    }
	  return TRUE;


	  case COLUMN:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tdiv1 = atoi((const char *)sdiv1);
		if(tdiv1 <= 0 ){
		  SetDlgItemText(hDlg, COLUMN, "1");
		  tdiv1 = 1;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, COLUMN, sdiv1, 12);
	      break;
	    }
	  return TRUE;


	  case ROW:
	    switch(HIWORD(lParam)){
	      case EN_KILLFOCUS:
		tdiv2 = atoi((const char *)sdiv2);
		if(tdiv2 <= 0 ){
		  SetDlgItemText(hDlg, ROW, "2");
		  tdiv2 = 2;
		}
	      break;

	      default:
		GetDlgItemText(hDlg, ROW, sdiv2, 12);
	      break;
	    }
	  return TRUE;


	  case BYMOUSE:
	    EndDialog(hDlg, 0);

	    if(quadblockselected != NULL){
	      quadblockselected->disconnect();
	      if(selected.remove(quadblockselected) == NO)
		unselected.remove(quadblockselected);
	      InvalidateRect(hwndPaper, NULL, TRUE);
	      quadblockselected = NULL;
	    }
	    tmpblk = new quadblk(tepsilon, tsigma, tmu, tsigma_mu,
	      txloc, tyloc, tcornerx1, tcornery1, tcornerx2, tcornery2,
	      tcornerx3, tcornery3, tdiv1, tdiv2);
	    addon.insert(tmpblk);
	    addon.center(&gcenter);
	    adder.setcenter(gcenter);
	    usermode->releasetoolbar();
	    internalmode = mouse = &adder;
	  return TRUE;

	  case BYCOORD:
	    EndDialog(hDlg, 0);
	    if(quadblockselected != NULL){
	      quadblockselected->disconnect();
	      if(selected.remove(quadblockselected) == NO)
		unselected.remove(quadblockselected);
	      InvalidateRect(hwndPaper, NULL, TRUE);
	      quadblockselected = NULL;
	    }
	    tmpblk = new quadblk(tepsilon, tsigma, tmu, tsigma_mu,
	      txloc, tyloc, tcornerx1, tcornery1, tcornerx2, tcornery2,
	      tcornerx3, tcornery3, tdiv1, tdiv2);
	    addon.insert(tmpblk);
	    adjustallowablesnap();

	    addon.clearconnectmask();
	    unselected.clearconnectmask();
	    selected.clearconnectmask();
	    totalcount = addon.connect(unselected);
	    nscount    = addon.connect(selected);
	    totalcount.node += nscount.node;
	    totalcount.side += nscount.side;
	    addon.transfer(unselecte

⌨️ 快捷键说明

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