Changeset 37 in Sophya for trunk/SophyaPI/PI/piscdrawwdg.cc
- Timestamp:
- Feb 24, 1997, 4:34:49 PM (29 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/piscdrawwdg.cc
r23 r37 32 32 33 33 void 34 PIScDrawWdg::SetLimits(double xmin, double xmax, 35 double ymin, double ymax, bool tmp)34 PIScDrawWdg::SetLimits(double xmin, double xmax, double ymin, double ymax, 35 bool axrl, bool ayud, bool tmp) 36 36 { 37 37 if (xmax <= xmin || ymax <= ymin) 38 38 return; // $CHECK$ exception ? 39 aXdir = axrl; // Vrai si Axe X de Droite vers Gauche 40 aYdir = ayud; // Vrai si Axe Y de Haut vers Bas 39 41 xMin = xmin; 40 42 xMax = xmax; 41 43 yMin = ymin; 42 44 yMax = ymax; 45 mPPos[0] = 0.5*(xMin+xMax); 46 mPPos[1] = 0.5*(yMin+yMax); 43 47 if (!tmp) { 44 48 xMinS = xmin; … … 63 67 PIScDrawWdg::CalcScale() 64 68 { 65 double margeH = (xMax-xMin)*0. 2;66 double margeV = (yMax-yMin)*0. 2;69 double margeH = (xMax-xMin)*0.15; 70 double margeV = (yMax-yMin)*0.15; 67 71 xScale = XSize() / (xMax-xMin + 2*margeH); 68 yScale = -YSize() / (yMax-yMin + 2*margeV); 69 xOrg = (-xMin + margeH) * xScale;// + XPos(); 70 yOrg = (-yMax - margeV) * yScale;// + YPos(); 72 if (aXdir) { 73 xScale = -xScale; 74 xOrg = (-xMax - margeH) * xScale;// + XPos(); 75 } 76 else xOrg = (-xMin + margeH) * xScale;// + XPos(); 77 yScale = YSize() / (yMax-yMin + 2*margeV); 78 if (!aYdir) { 79 yScale = -yScale; 80 yOrg = (-yMax - margeV) * yScale;// + YPos(); 81 } 82 else yOrg = (-yMin + margeV) * yScale;// + YPos(); 83 return; 71 84 } 72 85 … … 361 374 { 362 375 double xOffset = 0; 363 376 int kk; 364 377 ScSelFontSz(xMajTickLen*4); 365 378 for (double x=xBeg; x<=xMax; x += xStep) { 366 379 char label[20]; sprintf(label, "%-6g", x); 380 for(kk=0; kk<20; kk++) 381 if (label[kk] == ' ') { label[kk] = '\0' ; break; } 367 382 double largeur = ScStringWidth(label); 368 383 if (just == 1) … … 372 387 else 373 388 xOffset = 0; 389 if (aXdir) xOffset = -xOffset; 374 390 ScDrawString(x+xOffset, y, label); 375 391 } … … 390 406 else 391 407 xOffset = 0; 408 if (aXdir) xOffset = -xOffset; 392 409 ScDrawString(x+xOffset, y, label); 393 410 } … … 427 444 428 445 if (flags & kLabels) { 446 if (!aYdir) 429 447 DrawHLabels(-xMajTickLen*8, xFirstMajTick, xMajTickStep,0); 448 else 449 DrawHLabels(xMajTickLen*8, xFirstMajTick, xMajTickStep,0); 450 if (!aXdir) 430 451 DrawVLabels(-yMajTickLen*2, yFirstMajTick, yMajTickStep,1); 452 else 453 DrawVLabels(yMajTickLen*2, yFirstMajTick, yMajTickStep,1); 431 454 } 432 455 … … 475 498 476 499 if (flags & kLabels) { 500 if (!aYdir) { 477 501 DrawHLabels(yMin-xMajTickLen*8, xFirstMajTick, xMajTickStep,0); 478 502 DrawHLabels(yMax+xMajTickLen*2, xFirstMajTick, xMajTickStep,0); 503 } 504 else { 505 DrawHLabels(yMin-xMajTickLen*2, xFirstMajTick, xMajTickStep,0); 506 DrawHLabels(yMax+xMajTickLen*8, xFirstMajTick, xMajTickStep,0); 507 } 508 if (!aXdir) { 479 509 DrawVLabels(xMin-yMajTickLen*2, yFirstMajTick, yMajTickStep,1); 480 510 DrawVLabels(xMax+yMajTickLen*2, yFirstMajTick, yMajTickStep,-1); 511 } 512 else { 513 DrawVLabels(xMin-yMajTickLen*2, yFirstMajTick, yMajTickStep,-1); 514 DrawVLabels(xMax+yMajTickLen*2, yFirstMajTick, yMajTickStep,1); 515 } 481 516 } 482 517 } … … 604 639 PIScDrawWdg::UpdateText(int xp, int yp) 605 640 { 606 if ((mTxw == NULL) && (mTrlb == NULL)) return(false); 607 608 char buff[128]; 641 609 642 double dx, dy; 610 643 Local2Sc(xp, yp, dx, dy); 644 mPPos[0] = dx; mPPos[1] = dy; 645 if ((mTxw == NULL) && (mTrlb == NULL)) return(false); 646 647 char buff[128]; 611 648 sprintf(buff, "X= %g Y= %g", dx, dy); 612 649 if (mTxw) … … 647 684 648 685 if (xBegDrag == xEndDrag || yBegDrag == yEndDrag) 649 SetLimits(xMinS, xMaxS, yMinS, yMaxS );686 SetLimits(xMinS, xMaxS, yMinS, yMaxS, aXdir, aYdir ); 650 687 else { 651 688 double xl,yl,xh,yh; … … 654 691 if (xl > xh) swap(xl, xh); 655 692 if (yl > yh) swap(yl, yh); 656 SetLimits(xl,xh,yl,yh, true);693 SetLimits(xl,xh,yl,yh, aXdir, aYdir, true); 657 694 } 658 695
Note:
See TracChangeset
for help on using the changeset viewer.