how to draw a dashed line between two points

Discussion in 'Java' started by Rick, Sep 30, 2003.

  1. Rick

    Rick Guest

    Can someone please show me how to draw a dashed line between two points?
    Is there a method in the AWT library that allows this? Thanks!

    Rick
    Rick, Sep 30, 2003
    #1
    1. Advertising

  2. Robert Olofsson, Sep 30, 2003
    #2
    1. Advertising

  3. Rick

    Tr0mBoNe- Guest

    Rick <rrquick@nospam-com> wrote in message news:<3f79818a$>...
    > Can someone please show me how to draw a dashed line between two points?
    > Is there a method in the AWT library that allows this? Thanks!
    >
    > Rick


    There is only one way i can think of. First you have to take the 2
    points, and their line connecting them, and dividing it up into n
    segments where n is really big. Then, you can compute the endpoints of
    each segment and make every n/oh say 50 lines wite (or the background
    color). There is more math and a trickey algorithm to get down so it
    will be scalable, but its really not that hard. There is no method in
    any awt class that will make the style of the line dotted, unless you
    create a border around a rectangle of 0 width and 0 padding, but it
    would take about the same amount of code to implement.

    Cheers.
    Tr0mBoNe-, Sep 30, 2003
    #3
  4. Rick <rrquick@nospam-com> wrote in message news:<3f79818a$>...
    > Can someone please show me how to draw a dashed line between two points?
    > Is there a method in the AWT library that allows this? Thanks!
    >
    > Rick

    http://groups.google.com/groups?q=d...s&selm=&rnum=2

    For reference:

    public void drawDashedLine(Graphics g,int x1,int y1,int x2,int
    y2,double dashlength,double spacelength){
    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);
    }
    Sandip Chitale, Sep 30, 2003
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Yasir Khalifa
    Replies:
    3
    Views:
    887
    Thomas Weidenfeller
    Jun 29, 2004
  2. John Abbler

    Creating a dashed line

    John Abbler, Jul 13, 2005, in forum: HTML
    Replies:
    18
    Views:
    91,474
  3. n_o_s_p_a__m

    possible to draw a line between two ImageButton WebControls?

    n_o_s_p_a__m, Oct 31, 2003, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    136
    n_o_s_p_a__m
    Nov 26, 2003
  4. Replies:
    1
    Views:
    237
    Randy Webb
    Aug 25, 2006
  5. Replies:
    2
    Views:
    111
Loading...

Share This Page