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===  
<highlightsyntax language="java122">
+
<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);
 
}
 
}
</highlightsyntax>
+
</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}