(p.s. attached code is vb2010)
Yes, by default, 0,0 is in the upper left corner, so X increases to the Right, and Y increases going downward.
But you can use matrix transformations to put 0,0 where you want, and to scale drawings up or down, and various things.
For instance, it was mentioned that you can use Sin,Cos to calculate an endpoint given a start point and a length of line you want to draw.
But, you could also use a matrix transform to put 0,0 at the end of the line and rotate the coordinate system, so you always draw line of a given length, and at an angle of 0, but it draws at the angle you want because of the rotation. This is especially useful if you are not drawing a line, but drawing something more complicated using an image, such as a clock with stylish hands.
Here is an old example I wrote for someone in the past looking for teaching their child how to read an analog clock. So, one part of the program has you click on a label and it generates a random time and displays it in the label and on the clock.
But, it also demonstrated some of the functionality of how the clock was done, by allowing another form to be used to move the hands, scale them, and rotate.
There is not too much code to it. Since most of the functionality for the hands are the same for hour or minute hand, a class was used, instantiated twice, once for the minute hand and again for the hour hand. Haven't looked at the code in awhile, so am sure it could be improved upon.
The clock scales as the form resizes.