# Difference between revisions of "Draw a dashed line"

### From CodeCodex

(→Implementations) |
m (Text replace - "language="java122"" to "class="java"") |
||

(2 intermediate revisions by the same user not shown) | |||

Line 1: | Line 1: | ||

==Implementations== | ==Implementations== | ||

===Java=== | ===Java=== | ||

− | < | + | <pre class="java"> |

public void drawDashedLine(Graphics g,int x1,int y1,int x2,int y2, | public void drawDashedLine(Graphics g,int x1,int y1,int x2,int y2, | ||

double dashlength, double spacelength) { | double dashlength, double spacelength) { | ||

Line 27: | Line 27: | ||

x2,y2); | x2,y2); | ||

} | } | ||

− | </ | + | </pre> |

=== Tcl === | === Tcl === |

## Latest revision as of 03:35, 7 January 2012

## Implementations[edit]

### Java[edit]

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); }

### Tcl[edit]

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