Solved

draw curve

Posted on 2006-07-03
5
515 Views
Last Modified: 2008-03-17
hello experts
I'm beginner in vb.net .
I want to draw a curve with a couple of points those represent a profile of oil pipeline, I  found these code from MSDN:

Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}
     
Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)

how do I use these code in my program?
what component need to these code draw curve in it?
where I declare "e" object ?
how I print the drawed curve in page A3?
is there any better way to draw curve?

please write me codes.

thanks
0
Comment
Question by:farhadtolooie
  • 2
  • 2
5 Comments
 
LVL 9

Expert Comment

by:jrscherer
ID: 17035145
Hi farhadtolooie
Your code snippet above goes typically into the Paint event or DrawItem event of a Windows Control, such as a PictureBox or any other control with a visible body.
In case of a PictureBox Control which has a Paint event, the "e" object is an argument of the event subroutine. In this case it is a System.Windows.Forms.PaintEventArgs, which exposes the Graphics property.

To your questions:
how do I use these code in my program?
A: just copy it into the Paint event handler of a Picturebox, as an example.
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        Dim points As Point() = { _
           New Point(0, 100), _
           New Point(50, 80), _
           New Point(100, 20), _
           New Point(150, 80), _
           New Point(200, 100)}

        Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
        e.Graphics.DrawCurve(pen, points)
    End Sub

what component need to these code draw curve in it?
A: Any form or component which has a Paint or DrawItem argument. There are other ways too, but this should be good enough for your tests.

where I declare "e" object ?
A: see above

how I print the drawed curve in page A3?
A: make your object on which you draw the size of A3. Be aware that the monitor has a different resolution than for example a printer, so A3 is relative and depends on the output device.

is there any better way to draw curve?
A: all depends on what curve you plan to draw. DrawCurve produces a Cardinal Spline. You may want to check all the other draw methods which the Graphics method exposes. Use Help of Visual Studio to find them all.

Have fun with GDI+, Jack.net
0
 

Author Comment

by:farhadtolooie
ID: 17035246
thank you for your speed answer.
I replace poits with real points such as
Dim points As Point() = { _
           New Point(1, 800), _
           New Point(2, 780), _
           New Point(5, 900), _
           New Point(10, 1200), _
           New Point(13, 2000)}
and run the program and I saw the curve is out of my form while form was in maximum size of my monitor.
how do you solve this problem,
if I want to draw curve with axis of x and y(x-axis,y-axis) how do I it?
please write me some code

thanks
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17055365
You need to define a coordinate system that breaks the screen coordinates into quadrants.

Bob
0
 

Author Comment

by:farhadtolooie
ID: 17064095
how do I that
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 200 total points
ID: 17064974
1) You need a negative representation for the x and y axes.

2) This will divide the screen up like this:

                                        y-axis
                                        centerX
           +--------------------------------------------------+
           |  1                          2 |                           3 |
           |                                |                              |
           |                                |                              |
x-axis   |------------------------- |------------------------| centerY
           | 4                           5 |                           6 |
           |                                |                              |
           | 7                           8  |                          9 |
           +--------------------------------------------------+

3) The value for each point is:

    #1:  {0, 0}
    #2:  {centerX, 0}
    #3:  {rightX, 0}
    #4:  {leftX, centerY}
    #5:  {centerX, centerY}
    #6:  {rightX, centerY}
    #7:  {leftX, bottomY}
    #8:  {centerX, bottomY}
    #9:  {rightX, bottomY}

4) Coordinates:

     centerX = (width \ 2)
     centerY = (height \ 2)
     rightX = width
     bottomY = height

5) Draw the x-axis from #4 to #6
    Draw the y-axis from #2 to #8

6) You should be able to see the coordinate system overlaid on top of a form.

Bob
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Web Form VB.Net  import CSV 4 43
rebind a grid after user clicks on node in treeview 1 41
Crystal reports vb.net 2 54
Sending receiving text messages in vb.net 15 48
This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question