# Lines and Points¶

## Drawing Points¶

You can use draw_point() to draw a point. The size of point is determined by line width (pen size); If you want to draw a pixel, use put_pixel() instead.

## Drawing Lines¶

You can use line() to draw a line.

## Draw with the Current Position¶

In easygraphics, each image (including the graphics window) stores “a current position”. Use this position, we can draw lines relatively.

The related functions are:

`get_drawing_x` (image) |
Get the x coordinate value of the current drawing position (x,y). |

`get_drawing_y` (image) |
Get the y coordinate value of the current drawing position (x,y). |

`get_drawing_pos` (image) |
Get the current drawing position (x,y). |

`move_to` (x, y, image) |
Set the drawing position to (x,y). |

`move_rel` (dx, dy, image) |
Move the drawing position by (dx,dy). |

`line_to` (x, y, image) |
Draw a line from the current drawing position to (x,y), then set the drawing position is set to (x,y). |

`line_rel` (dx, dy, image) |
Draw a line from the current drawing position (x,y) to (x+dx,y+dy), then set the drawing position is set to (x+dx,y+dy). |

The following program draws a dash line by using the current position.

```
from easygraphics import *
def main():
init_graph(400, 100)
move_to(50, 50)
for i in range(10):
line_rel(10, 0)
move_rel(20, 0)
pause()
close_graph()
easy_run(main)
```

## Approximate a function curve¶

Sometimes we need to draw line segments successively.

For example, to plot the function f(x)=sin(x)’s curve on [-3,3] ,we can use many successive line segements to approximate the curve:

- divide [-3,3] into n equal intervals, to get n+1 values evenly distributed on [-3,3]: x0,x1,x2,x3,…,xn, and x0=-3, xn=3
- cacluate function values f(x0),f(x1),f(x2),f(x3), …, f(xn).
- draw n line segements: (x0,f(x0)) to (x1,f(x1)), (x1,f(x1)) to (x2,f(x2)) …, (xn-1,f(xn-1)) to (xn,f(xn))
- the resulting line segments is the curve approximation we need.

Apparently, the more greater n is, the more precisely the appoximation is. To minimize the usage of memory, we should calculate and draw the line segments one by one.

The following program plot a sin(x) curve on [-3,3].

```
from easygraphics import *
import math as m
def main():
init_graph(600, 400)
translate(300, 200) # move origin to the center
scale(100, -100) # zoom each axis 100 times, and make y-axis grow from bottom to top.
x = -3
delta = 0.01
move_to(x, m.sin(x))
while x <= 3:
line_to(x, m.sin(x))
x = x + delta
pause()
close_graph()
easy_run(main)
```