Changeset 3968 in josm for trunk/src/org/openstreetmap/josm/data/osm
- Timestamp:
- 2011-03-09T16:22:48+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java
r3964 r3968 361 361 } 362 362 363 private Polygon buildPolygon(Point center, int radius, int sides, double rotation) { 364 Polygon polygon = new Polygon(); 365 for (int i = 0; i < sides; i++) { 366 double angle = ((2 * Math.PI / sides) * i) - rotation; 367 int x = (int) Math.round(center.x + radius * Math.cos(angle)); 368 int y = (int) Math.round(center.y + radius * Math.sin(angle)); 369 polygon.addPoint(x, y); 370 } 371 return polygon; 372 } 373 374 private Polygon buildPolygon(Point center, int radius, int sides) { 375 return buildPolygon(center, radius, sides, 0.0); 376 } 377 363 378 public void drawNodeSymbol(Node n, Symbol s, Color fillColor, Color strokeColor, NodeTextElement text) { 364 379 Point p = nc.getPoint(n); … … 369 384 g.setColor(fillColor); 370 385 switch (s.symbol) { 371 case SQUARE: 372 g.fillRect(p.x - radius, p.y - radius, s.size, s.size); 373 break; 374 case CIRCLE: 375 g.fillOval(p.x - radius, p.y - radius, s.size, s.size); 376 break; 377 default: 378 throw new AssertionError(); 386 case SQUARE: 387 g.fillRect(p.x - radius, p.y - radius, s.size, s.size); 388 break; 389 case CIRCLE: 390 g.fillOval(p.x - radius, p.y - radius, s.size, s.size); 391 break; 392 case TRIANGLE: 393 g.fillPolygon(buildPolygon(p, radius, 3, Math.PI / 2)); 394 break; 395 case PENTAGON: 396 g.fillPolygon(buildPolygon(p, radius, 5, Math.PI / 2)); 397 break; 398 case HEXAGON: 399 g.fillPolygon(buildPolygon(p, radius, 6)); 400 break; 401 case HEPTAGON: 402 g.fillPolygon(buildPolygon(p, radius, 7, Math.PI / 2)); 403 break; 404 case OCTAGON: 405 g.fillPolygon(buildPolygon(p, radius, 8, Math.PI / 8)); 406 break; 407 case NONAGON: 408 g.fillPolygon(buildPolygon(p, radius, 9, Math.PI / 2)); 409 break; 410 case DECAGON: 411 g.fillPolygon(buildPolygon(p, radius, 10)); 412 break; 413 default: 414 throw new AssertionError(); 379 415 } 380 416 } … … 383 419 g.setColor(strokeColor); 384 420 switch (s.symbol) { 385 case SQUARE: 386 g.drawRect(p.x - radius, p.y - radius, s.size - 1, s.size - 1); 387 break; 388 case CIRCLE: 389 g.drawOval(p.x - radius, p.y - radius, s.size - 1, s.size - 1); 390 break; 391 default: 392 throw new AssertionError(); 421 case SQUARE: 422 g.drawRect(p.x - radius, p.y - radius, s.size - 1, s.size - 1); 423 break; 424 case CIRCLE: 425 g.drawOval(p.x - radius, p.y - radius, s.size - 1, s.size - 1); 426 break; 427 case TRIANGLE: 428 g.drawPolygon(buildPolygon(p, radius, 3, Math.PI / 2)); 429 break; 430 case PENTAGON: 431 g.drawPolygon(buildPolygon(p, radius, 5, Math.PI / 2)); 432 break; 433 case HEXAGON: 434 g.drawPolygon(buildPolygon(p, radius, 6)); 435 break; 436 case HEPTAGON: 437 g.drawPolygon(buildPolygon(p, radius, 7, Math.PI / 2)); 438 break; 439 case OCTAGON: 440 g.drawPolygon(buildPolygon(p, radius, 8, Math.PI / 8)); 441 break; 442 case NONAGON: 443 g.drawPolygon(buildPolygon(p, radius, 9, Math.PI / 2)); 444 break; 445 case DECAGON: 446 g.drawPolygon(buildPolygon(p, radius, 10)); 447 break; 448 default: 449 throw new AssertionError(); 393 450 } 394 451 g.setStroke(new BasicStroke());
Note:
See TracChangeset
for help on using the changeset viewer.