### Drawing a line between 2 points in a console

Looking at a function helios remade here ( http://www.cplusplus.com/forum/beginner/8702/ ) I quickly threw this together and was wondering if it's possible in a console program to just draw '.' making a line between these two points. I know this is a basic question but I'm not to sure how to.

Thanks

 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 #include #include double cal_distance(double d_x1, double d_x2, double d_y1, double d_y2) { return sqrt(pow(d_x2 - d_x1,2)+pow(d_y2 - d_y1,2)); } struct Object { double y, x; }; void main() { Object m_Object[2]; m_Object[0].x = 20; m_Object[0].y = 5; m_Object[1].x = 75; m_Object[1].y = 17; char map[20][79]; for(int i = 0; i < 20; ++i) { for(int j = 0; j < 79; ++j) { map[i][j] = ' '; } } map[(int)m_Object[0].y][(int)m_Object[0].x] = 'A'; map[(int)m_Object[1].y][(int)m_Object[1].x] = 'B'; for(int i = 0; i < 20; ++i) { for(int j = 0; j < 79; ++j) { printf("%c", map[i][j]); } printf("\n"); } double distance = 0; distance = cal_distance( m_Object[0].x , m_Object[1].x , m_Object[0].y , m_Object[1].y ); printf("Distance Between The Points = %f\n" , distance); }
Just got it working by using this:
 123456789101112131415161718192021222324252627282930313233343536373839404142 int Sign(double x) { if (x < 0) { return -1; } else { return 1; } } void drawLine(double xPrev, double yPrev, double x, double y, char (&map)[20][79]) { double x1 = xPrev; double y1 = yPrev; double x2 = x; double y2 = y; double dy = y2 - y1; double dx = x2 - x1; if (fabs(dy) > fabs(dx)) { for( y = y1; y != y2; y += Sign( dy ) ) { x = x1 + ( y - y1 ) * dx / dy; map[(int)y][(int)x] = '.'; } } else { for( x = x1; x != x2; x += Sign( dx ) ) { y = y1 + ( x - x1 ) * dy / dx; map[(int)y][(int)x] = '.'; } } // draw the last point map[(int)y2][(int)x2] = '.'; }

Anyone know of any simpler ways or?
Topic archived. No new replies allowed.