- Timestamp:
- May 3, 2010, 8:45:22 AM (16 years ago)
- Location:
- branches/simmosaic_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/simmosaic_branches
- Property svn:mergeinfo changed
-
branches/simmosaic_branches/Ohana
-
Property svn:mergeinfo
set to (toggle deleted branches)
/trunk/Ohana merged eligible /branches/eam_branches/Ohana.20100407 27635-27772 /branches/pap_delete/Ohana 27530-27595
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/simmosaic_branches/Ohana/src/kapa2/src/DrawObjects.c
r13320 r27839 1 1 # include "Ximage.h" 2 2 3 # define DrawLine(X1,Y1,X2,Y2) (XDrawLine (graphic->display, graphic->window, graphic->gc, (int)(X1+0.5), (int)(Y1+0.5), (int)(X2+0.5), (int)(Y2+0.5))) 3 4 # define DrawRectangle(X1,Y1,X2,Y2) (XDrawRectangle (graphic->display, graphic->window, graphic->gc, (int)(X1+0.5), (int)(Y1+0.5), (int)(X2+0.5), (int)(Y2+0.5))) … … 10 11 11 12 static Graphic *graphic; 12 13 void ClipLine (double x0, double y0, double x1, double y1, double X0, double Y0, double X1, double Y1);14 13 15 14 /* draw all objects for this Graph */ … … 40 39 /* set line type */ 41 40 switch (object[0].ltype) { 42 case 0:43 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);44 break;45 case 1:46 XSetDashes (graphic->display, graphic->gc, 100, dash, 2);47 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);48 break;49 case 2:50 XSetDashes (graphic->display, graphic->gc, 10, dot, 2);51 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);52 break;53 default:54 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);55 break;41 case 0: 42 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter); 43 break; 44 case 1: 45 XSetDashes (graphic->display, graphic->gc, 100, dash, 2); 46 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter); 47 break; 48 case 2: 49 XSetDashes (graphic->display, graphic->gc, 10, dot, 2); 50 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter); 51 break; 52 default: 53 XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter); 54 break; 56 55 } 57 56 … … 59 58 60 59 switch (object[0].style) { 61 case CONNECT:62 DrawConnect (graph, object);63 break;64 case HISTOGRAM:65 DrawHistogram (graph, object);66 break;67 case POINTS:68 DrawPoints (graph, object);69 break;60 case CONNECT: 61 DrawConnect (graph, object); 62 break; 63 case HISTOGRAM: 64 DrawHistogram (graph, object); 65 break; 66 case POINTS: 67 DrawPoints (graph, object); 68 break; 70 69 } 71 70 … … 181 180 182 181 /******/ 182 /* simplify the code abit by finding triplets, watch out for a histogram of 2 points */ 183 183 void DrawHistogram (KapaGraphWidget *graph, Gobjects *object) { 184 184 … … 186 186 float *x, *y; 187 187 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 188 double sx0, sy0, sx1, sy1, sxa ;188 double sx0, sy0, sx1, sy1, sxa, sya, sxo, syo; 189 189 double X0, X1, Y0, Y1; 190 190 … … 211 211 for (i = 0; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 212 212 if (i >= object[0].Npts) return; 213 214 /* first valid data point */ 213 215 sx0 = x[i]*mxi + y[i]*mxj + bx; 214 216 sy0 = x[i]*myi + y[i]*myj + by; 215 217 sx0 = MIN (MAX (sx0, X0), X1); 216 218 sy0 = MAX (MIN (sy0, Y0), Y1); 219 220 /* find the second valid datapoint */ 221 for (i++; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 222 if (i >= object[0].Npts) return; 223 224 /* second valid data point */ 225 sx1 = x[i]*mxi + y[i]*mxj + bx; 226 sy1 = x[i]*myi + y[i]*myj + by; 227 sx1 = MIN (MAX (sx1, X0), X1); 228 sy1 = MAX (MIN (sy1, Y0), Y1); 229 230 /* connect first point to second point */ 231 sxa = sx0 - 0.5*(sx1 - sx0); 232 sya = MAX (sy0, Y0); 233 DrawLine (sx0, sy0, sxa, sy0); 234 DrawLine (sxa, sy0, sxa, sya); 235 236 /* draw segment equal distance behind first point and down to x-axis */ 237 sxa = 0.5*(sx0 + sx1); 238 DrawLine (sx0, sy0, sxa, sy0); 239 DrawLine (sxa, sy0, sxa, sy1); 240 DrawLine (sxa, sy1, sx1, sy1); 241 sx0 = sx1; 242 sy0 = sy1; 243 244 /* continue with rest of points */ 245 sxo = syo = 0; 246 for (i++; i < object[0].Npts; i++) { 247 if (!(finite(x[i]) && finite(y[i]))) continue; 248 sx1 = x[i]*mxi + y[i]*mxj + bx; 249 sy1 = x[i]*myi + y[i]*myj + by; 250 sx1 = MIN (MAX (sx1, X0), X1); 251 sy1 = MAX (MIN (sy1, Y0), Y1); 252 sxa = 0.5*(sx0 + sx1); 253 DrawLine (sx0, sy0, sxa, sy0); 254 DrawLine (sxa, sy0, sxa, sy1); 255 DrawLine (sxa, sy1, sx1, sy1); 256 sxo = sx0; syo = sy0; 257 sx0 = sx1; sy0 = sy1; 258 } 259 260 /* draw segment equal distance after last point and down to x-axis */ 261 sxa = sx1 + 0.5*(sx1 - sxo); 262 sya = MAX (sy1, Y0); 263 DrawLine (sx1, sy1, sxa, sy1); 264 DrawLine (sxa, sy1, sxa, sya); 265 } 266 267 # if (0) 268 void FillHistogram (KapaGraphWidget *graph, Gobjects *object) { 269 270 int i; 271 float *x, *y; 272 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 273 double sx0, sy0, sx1, sy1, sxa, sya, sxo, syo; 274 double X0, X1, Y0, Y1; 275 276 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 277 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); 278 myi = graph[0].axis[0].dfy / (object[0].x1 - object[0].x0); 279 myj = graph[0].axis[1].dfy / (object[0].y1 - object[0].y0); 280 281 bxi = graph[0].axis[0].fx - object[0].x0*graph[0].axis[0].dfx/(object[0].x1 - object[0].x0); 282 bxj = -object[0].y0*graph[0].axis[1].dfx/(object[0].y1 - object[0].y0); 283 byi = -object[0].x0*graph[0].axis[0].dfy/(object[0].x1 - object[0].x0); 284 byj = graph[0].axis[1].fy - object[0].y0*graph[0].axis[1].dfy/(object[0].y1 - object[0].y0); 285 286 bx = bxi + bxj; 287 by = byi + byj; 288 289 X0 = graph[0].axis[0].fx; 290 X1 = graph[0].axis[0].fx + graph[0].axis[0].dfx; 291 Y0 = graph[0].axis[1].fy; 292 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 293 294 /* find the first valid datapoint */ 295 x = object[0].x; y = object[0].y; 296 for (i = 0; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 297 if (i >= object[0].Npts) return; 298 299 /* first valid data point */ 300 sx0 = x[i]*mxi + y[i]*mxj + bx; 301 sy0 = x[i]*myi + y[i]*myj + by; 302 sx0 = MIN (MAX (sx0, X0), X1); 303 sy0 = MAX (MIN (sy0, Y0), Y1); 304 305 /* find the second valid datapoint */ 306 for (i++; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 307 if (i >= object[0].Npts) return; 308 309 /* second valid data point */ 310 sx1 = x[i]*mxi + y[i]*mxj + bx; 311 sy1 = x[i]*myi + y[i]*myj + by; 312 sx1 = MIN (MAX (sx1, X0), X1); 313 sy1 = MAX (MIN (sy1, Y0), Y1); 314 315 /* connect first point to second point */ 316 sxa = sx0 - 0.5*(sx1 - sx0); 317 sya = MAX (sy0, Y0); 318 DrawLine (sx0, sy0, sxa, sy0); 319 DrawLine (sxa, sy0, sxa, sya); 320 321 /* draw segment equal distance behind first point and down to x-axis */ 322 sxa = 0.5*(sx0 + sx1); 323 DrawLine (sx0, sy0, sxa, sy0); 324 DrawLine (sxa, sy0, sxa, sy1); 325 DrawLine (sxa, sy1, sx1, sy1); 326 sx0 = sx1; 327 sy0 = sy1; 217 328 218 329 /* continue with rest of points */ … … 227 338 DrawLine (sxa, sy0, sxa, sy1); 228 339 DrawLine (sxa, sy1, sx1, sy1); 340 sxo = sx0; syo = sy0; 229 341 sx0 = sx1; sy0 = sy1; 230 342 } 343 344 /* draw segment equal distance after last point and down to x-axis */ 345 sxa = sx1 + 0.5*(sx1 - sxo); 346 sya = MAX (sy1, Y0); 347 DrawLine (sx1, sy1, sxa, sy1); 348 DrawLine (sxa, sy1, sxa, sya); 231 349 } 350 # endif 232 351 233 352 /******/ … … 263 382 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 264 383 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 265 {266 FillRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);267 }384 { 385 FillRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]); 386 } 268 387 } 269 388 } … … 275 394 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 276 395 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 277 {278 DrawRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);279 }396 { 397 DrawRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]); 398 } 280 399 } 281 400 } … … 287 406 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 288 407 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 289 {290 DrawLine (sx - d*z[i], sy, sx + d*z[i] + 1, sy);291 DrawLine (sx, sy - d*z[i], sx, sy + d*z[i] + 1);292 }408 { 409 DrawLine (sx - d*z[i], sy, sx + d*z[i] + 1, sy); 410 DrawLine (sx, sy - d*z[i], sx, sy + d*z[i] + 1); 411 } 293 412 } 294 413 } … … 300 419 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 301 420 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 302 {303 DrawLine (sx + d*z[i] + 1, sy - d*z[i] - 1, sx - d*z[i], sy + d*z[i]);304 DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i] + 1, sy + d*z[i] + 1);305 }421 { 422 DrawLine (sx + d*z[i] + 1, sy - d*z[i] - 1, sx - d*z[i], sy + d*z[i]); 423 DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i] + 1, sy + d*z[i] + 1); 424 } 306 425 } 307 426 } … … 314 433 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 315 434 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 316 {317 points[0].x = sx - d*z[i]; points[0].y = sy + 0.58*d*z[i];318 points[1].x = sx + d*z[i]; points[1].y = sy + 0.58*d*z[i];319 points[2].x = sx; points[2].y = sy - 1.15*d*z[i];320 points[3].x = sx - d*z[i]; points[3].y = sy + 0.58*d*z[i];321 XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);322 }435 { 436 points[0].x = sx - d*z[i]; points[0].y = sy + 0.58*d*z[i]; 437 points[1].x = sx + d*z[i]; points[1].y = sy + 0.58*d*z[i]; 438 points[2].x = sx; points[2].y = sy - 1.15*d*z[i]; 439 points[3].x = sx - d*z[i]; points[3].y = sy + 0.58*d*z[i]; 440 XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin); 441 } 323 442 } 324 443 } … … 330 449 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 331 450 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 332 {333 DrawLine (sx - d*z[i], sy + 0.58*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);334 DrawLine (sx + d*z[i], sy + 0.58*d*z[i], sx, sy - 1.15*d*z[i]);335 DrawLine (sx, sy - 1.15*d*z[i], sx - d*z[i], sy + 0.58*d*z[i]);336 }451 { 452 DrawLine (sx - d*z[i], sy + 0.58*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]); 453 DrawLine (sx + d*z[i], sy + 0.58*d*z[i], sx, sy - 1.15*d*z[i]); 454 DrawLine (sx, sy - 1.15*d*z[i], sx - d*z[i], sy + 0.58*d*z[i]); 455 } 337 456 } 338 457 } … … 344 463 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 345 464 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 346 {347 DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]);348 DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]);349 DrawLine (sx, sy, sx, sy - 1.15*d*z[i]);350 }465 { 466 DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]); 467 DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]); 468 DrawLine (sx, sy, sx, sy - 1.15*d*z[i]); 469 } 351 470 } 352 471 } … … 358 477 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 359 478 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 360 { 361 DrawCircle (sx, sy, d*z[i]); 362 } 479 { 480 DrawCircle (sx, sy, d*z[i]); 481 } 482 } 483 } 484 if (object[0].ptype == 8) { /* pentagon */ 485 for (i = 0; i < object[0].Npts; i++) { 486 if (!(finite(x[i]) && finite(y[i]))) continue; 487 sx = x[i]*mxi + y[i]*mxj + bx; 488 sy = x[i]*myi + y[i]*myj + by; 489 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 490 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 491 { 492 DrawLine (sx + 0.00*d*z[i], sy - 1.00*d*z[i], sx + 0.95*d*z[i], sy - 0.31*d*z[i]); 493 DrawLine (sx + 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.58*d*z[i], sy + 0.81*d*z[i]); 494 DrawLine (sx + 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.58*d*z[i], sy + 0.81*d*z[i]); 495 DrawLine (sx - 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.95*d*z[i], sy - 0.31*d*z[i]); 496 DrawLine (sx - 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.00*d*z[i], sy - 1.00*d*z[i]); 497 } 498 } 499 } 500 if (object[0].ptype == 9) { /* hexagon */ 501 for (i = 0; i < object[0].Npts; i++) { 502 if (!(finite(x[i]) && finite(y[i]))) continue; 503 sx = x[i]*mxi + y[i]*mxj + bx; 504 sy = x[i]*myi + y[i]*myj + by; 505 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 506 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 507 { 508 DrawLine (sx - d*z[i], sy, sx - 0.50*d*z[i], sy + 0.87*d*z[i]); 509 DrawLine (sx - 0.50*d*z[i], sy + 0.87*d*z[i], sx + 0.50*d*z[i], sy + 0.87*d*z[i]); 510 DrawLine (sx + 0.50*d*z[i], sy + 0.87*d*z[i], sx + d*z[i], sy); 511 512 DrawLine (sx + d*z[i], sy, sx + 0.50*d*z[i], sy - 0.87*d*z[i]); 513 DrawLine (sx + 0.50*d*z[i], sy - 0.87*d*z[i], sx - 0.50*d*z[i], sy - 0.87*d*z[i]); 514 DrawLine (sx - 0.50*d*z[i], sy - 0.87*d*z[i], sx - d*z[i], sy); 515 } 363 516 } 364 517 } … … 386 539 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 387 540 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 388 {389 FillRectangle (sx - d, sy - d, 2*d, 2*d);390 }541 { 542 FillRectangle (sx - d, sy - d, 2*d, 2*d); 543 } 391 544 } 392 545 } … … 398 551 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 399 552 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 400 {401 DrawRectangle (sx - d, sy - d, 2*d, 2*d);402 }553 { 554 DrawRectangle (sx - d, sy - d, 2*d, 2*d); 555 } 403 556 } 404 557 } … … 410 563 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 411 564 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 412 {413 DrawLine (sx - d, sy, sx + d + 1, sy);414 DrawLine (sx, sy - d, sx, sy + d + 1);415 }565 { 566 DrawLine (sx - d, sy, sx + d + 1, sy); 567 DrawLine (sx, sy - d, sx, sy + d + 1); 568 } 416 569 } 417 570 } … … 423 576 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 424 577 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 425 {426 /* XDrawLine is a little funny, this is needed to fix endpost errors */427 DrawLine (sx + d + 1, sy - d - 1, sx - d, sy + d);428 DrawLine (sx - d, sy - d, sx + d + 1, sy + d + 1);429 }578 { 579 /* XDrawLine is a little funny, this is needed to fix endpost errors */ 580 DrawLine (sx + d + 1, sy - d - 1, sx - d, sy + d); 581 DrawLine (sx - d, sy - d, sx + d + 1, sy + d + 1); 582 } 430 583 } 431 584 } … … 438 591 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 439 592 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 440 {441 points[0].x = sx - d; points[0].y = sy + 0.58*d;442 points[1].x = sx + d; points[1].y = sy + 0.58*d;443 points[2].x = sx; points[2].y = sy - 1.15*d;444 points[3].x = sx - d; points[3].y = sy + 0.58*d;445 XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);446 }593 { 594 points[0].x = sx - d; points[0].y = sy + 0.58*d; 595 points[1].x = sx + d; points[1].y = sy + 0.58*d; 596 points[2].x = sx; points[2].y = sy - 1.15*d; 597 points[3].x = sx - d; points[3].y = sy + 0.58*d; 598 XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin); 599 } 447 600 } 448 601 } … … 454 607 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 455 608 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 456 {457 DrawLine (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d);458 DrawLine (sx + d, sy + 0.58*d, sx, sy - 1.15*d);459 DrawLine (sx, sy - 1.15*d, sx - d, sy + 0.58*d);460 }609 { 610 DrawLine (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d); 611 DrawLine (sx + d, sy + 0.58*d, sx, sy - 1.15*d); 612 DrawLine (sx, sy - 1.15*d, sx - d, sy + 0.58*d); 613 } 461 614 } 462 615 } … … 468 621 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 469 622 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 470 {471 DrawLine (sx, sy, sx - d, sy + 0.58*d);472 DrawLine (sx, sy, sx + d, sy + 0.58*d);473 DrawLine (sx, sy, sx, sy - 1.15*d);474 }623 { 624 DrawLine (sx, sy, sx - d, sy + 0.58*d); 625 DrawLine (sx, sy, sx + d, sy + 0.58*d); 626 DrawLine (sx, sy, sx, sy - 1.15*d); 627 } 475 628 } 476 629 } … … 482 635 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 483 636 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 484 { 485 DrawCircle (sx, sy, d); 486 } 637 { 638 DrawCircle (sx, sy, d); 639 } 640 } 641 } 642 if (object[0].ptype == 8) { /* pentagon */ 643 for (i = 0; i < object[0].Npts; i++) { 644 if (!(finite(x[i]) && finite(y[i]))) continue; 645 sx = x[i]*mxi + y[i]*mxj + bx; 646 sy = x[i]*myi + y[i]*myj + by; 647 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 648 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 649 { 650 DrawLine (sx + 0.00*d, sy - 1.00*d, sx + 0.95*d, sy - 0.31*d); 651 DrawLine (sx + 0.95*d, sy - 0.31*d, sx + 0.58*d, sy + 0.81*d); 652 DrawLine (sx + 0.58*d, sy + 0.81*d, sx - 0.58*d, sy + 0.81*d); 653 DrawLine (sx - 0.58*d, sy + 0.81*d, sx - 0.95*d, sy - 0.31*d); 654 DrawLine (sx - 0.95*d, sy - 0.31*d, sx + 0.00*d, sy - 1.00*d); 655 } 656 } 657 } 658 if (object[0].ptype == 9) { /* pentagon */ 659 for (i = 0; i < object[0].Npts; i++) { 660 if (!(finite(x[i]) && finite(y[i]))) continue; 661 sx = x[i]*mxi + y[i]*mxj + bx; 662 sy = x[i]*myi + y[i]*myj + by; 663 if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 664 (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy)) 665 { 666 DrawLine (sx - 1.00*d, sy + 0.00*d, sx - 0.50*d, sy + 0.87*d); 667 DrawLine (sx - 0.50*d, sy + 0.87*d, sx + 0.50*d, sy + 0.87*d); 668 DrawLine (sx + 0.50*d, sy + 0.87*d, sx + 1.00*d, sy + 0.00*d); 669 DrawLine (sx + 1.00*d, sy + 0.00*d, sx + 0.50*d, sy - 0.87*d); 670 DrawLine (sx + 0.50*d, sy - 0.87*d, sx - 0.50*d, sy - 0.87*d); 671 DrawLine (sx - 0.50*d, sy - 0.87*d, sx - 1.00*d, sy + 0.00*d); 672 } 487 673 } 488 674 } … … 534 720 ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 535 721 (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy))) 536 {537 DrawLine (sx0, sy0, sx1, sy1);538 if (bar) {539 sx10 = sy1 - sz;540 sx11 = sy1 + sz;541 DrawLine (sx1, sx10, sx1, sx11);542 }543 }722 { 723 DrawLine (sx0, sy0, sx1, sy1); 724 if (bar) { 725 sx10 = sy1 - sz; 726 sx11 = sy1 + sz; 727 DrawLine (sx1, sx10, sx1, sx11); 728 } 729 } 544 730 if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue; 545 731 sx0 = x[i]*mxi + y[i]*mxj + bx; … … 551 737 ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 552 738 (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy))) 553 {554 DrawLine (sx0, sy0, sx1, sy1);555 if (bar) {556 sx10 = sy1 - sz;557 sx11 = sy1 + sz;558 DrawLine (sx1, sx10, sx1, sx11);559 }560 }739 { 740 DrawLine (sx0, sy0, sx1, sy1); 741 if (bar) { 742 sx10 = sy1 - sz; 743 sx11 = sy1 + sz; 744 DrawLine (sx1, sx10, sx1, sx11); 745 } 746 } 561 747 } 562 748 } … … 596 782 ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 597 783 (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy))) 598 {599 DrawLine (sx0, sy0, sx1, sy1);600 if (bar) {601 sx10 = sx1 - sz;602 sx11 = sx1 + sz;603 DrawLine (sx10, sy1, sx11, sy1);604 }605 }784 { 785 DrawLine (sx0, sy0, sx1, sy1); 786 if (bar) { 787 sx10 = sx1 - sz; 788 sx11 = sx1 + sz; 789 DrawLine (sx10, sy1, sx11, sy1); 790 } 791 } 606 792 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 607 793 sx0 = x[i]*mxi + y[i]*mxj + bx; … … 613 799 ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 614 800 (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy))) 615 {616 DrawLine (sx0, sy0, sx1, sy1);617 if (bar) {618 sx10 = sx1 - sz;619 sx11 = sx1 + sz;620 DrawLine (sx10, sy1, sx11, sy1);621 }622 }801 { 802 DrawLine (sx0, sy0, sx1, sy1); 803 if (bar) { 804 sx10 = sx1 - sz; 805 sx11 = sx1 + sz; 806 DrawLine (sx10, sy1, sx11, sy1); 807 } 808 } 623 809 } 624 810 }
Note:
See TracChangeset
for help on using the changeset viewer.
