# Difference between revisions of "Draw a dashed line"

### From CodeCodex

(→Java) |
(→Implementations) |
||

Line 28: | Line 28: | ||

} | } | ||

</highlightsyntax> | </highlightsyntax> | ||

+ | |||

+ | === Tcl === | ||

+ | <pre class="Tcl"> | ||

+ | package require Tk | ||

+ | pack [canvas .can -width 300 -height 200] | ||

+ | .can create line 50 50 200 100 -dash {2 4} | ||

+ | </pre> | ||

+ | |||

[[Category:Java]] | [[Category:Java]] | ||

+ | [[Category:Tcl]] | ||

+ | [[Category:Graphics]] |

## Revision as of 20:16, 21 February 2011

## Implementations

### Java

<highlightsyntax language="java122"> public void drawDashedLine(Graphics g,int x1,int y1,int x2,int y2,

double dashlength, double spacelength) { if((x1==x2)&&(y1==y2)) { g.drawLine(x1,y1,x2,y2); return; } double linelength=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); double yincrement=(y2-y1)/(linelength/(dashlength+spacelength)); double xincdashspace=(x2-x1)/(linelength/(dashlength+spacelength)); double yincdashspace=(y2-y1)/(linelength/(dashlength+spacelength)); double xincdash=(x2-x1)/(linelength/(dashlength)); double yincdash=(y2-y1)/(linelength/(dashlength)); int counter=0; for (double i=0;i<linelength-dashlength;i+=dashlength+spacelength){ g.drawLine((int) (x1+xincdashspace*counter), (int) (y1+yincdashspace*counter), (int) (x1+xincdashspace*counter+xincdash), (int) (y1+yincdashspace*counter+yincdash)); counter++; } if ((dashlength+spacelength)*counter<=linelength) g.drawLine((int) (x1+xincdashspace*counter), (int) (y1+yincdashspace*counter), x2,y2);

} </highlightsyntax>

### Tcl

package require Tk pack [canvas .can -width 300 -height 200] .can create line 50 50 200 100 -dash {2 4}