468,765 Members | 1,461 Online

# recursively draw the line

I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range.

The problem is I don't know how to draw the line in point 0.375, as you see below.
#include <iostream>
using namespace std;

void draw(double min, double max, int n);

int main()
{ draw(0,1,8);
}

void draw(double min, double max, int n)
{ if (n != 1)
{ double mid = (max - min)/2;
cout << mid << endl;
draw(min, mid, n/2);
}
}
The program output:
0.5
0.25
0.125

Here's the expected output:
0.5
0.25
0.125
0.375
0.75
0.625
0.875
Nov 13 '05 #1
5 6123 jr********@hotmail.com (Matt) writes:
I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range.
C has no facilities for drawing lines.
The problem is I don't know how to draw the line in point 0.375, as you see below.
That's not C.
The program output:
0.5
0.25
0.125

That's not a line. Those are numbers.
--
"What is appropriate for the master is not appropriate for the novice.
You must understand the Tao before transcending structure."
--The Tao of Programming
Nov 13 '05 #2
Matt <jr********@hotmail.com> wrote:
I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range. The problem is I don't know how to draw the line in point 0.375, as you see below.
using namespace std;
Sorry, but this a C newsgroup, there's also a C++ group in case you have
problems with C++. So let's replace this with

#include <stdio.h>
void draw(double min, double max, int n); int main()
{ draw(0,1,8);
}
You forgot to have main() return an int...
void draw(double min, double max, int n)
{ if (n != 1)
{ double mid = (max - min)/2;
You need to add the starting point of the interval here:

double mid = ( max - min ) / 2 + min;

(the mid-point between e.g. 4 and 5 is 4.5 and not just 0.5).
cout << mid << endl;
Sorry, this won't work in C, use instead

printf( "%f\n", mid );
draw(min, mid, n/2);
Now you're "drawing" the lower half of the interval but you forget to
also "draw" the upper half. You need an additional call:

draw( mid, max, n / 2 );
}
}

Regards, Jens
--
_ _____ _____
| ||_ _||_ _| Je***********@physik.fu-berlin.de
_ | | | | | |
| |_| | | | | | http://www.physik.fu-berlin.de/~toerring
\___/ens|_|homs|_|oerring
Nov 13 '05 #3
Matt wrote:
I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range.

The problem is I don't know how to draw the line in point 0.375, as you
#include <iostream>
using namespace std;

Try comp.lang.c++

--
Richard Heathfield : bi****@eton.powernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton
Nov 13 '05 #4
On 5 Oct 2003 10:44:13 -0700, jr********@hotmail.com (Matt) wrote:
I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range.

snip

different subjects to multiple groups. If you must post to more than
one group, put all the group names on one message.
<<Remove the del for email>>
Nov 13 '05 #5
Matt wrote:

I am writing a recursive program to draw the lines recursively, given the
range[min,max] and number of intervals (n) between the range.

Search under Bresenham's Algorithm. Can also be used to draw ellipses ;-)
--
Julian V. Noble
Professor Emeritus of Physics
jv*@lessspamformother.virginia.edu
^^^^^^^^^^^^^^^^^^
http://galileo.phys.virginia.edu/~jvn/

"Science knows only one commandment: contribute to science."
-- Bertolt Brecht, "Galileo".
Nov 13 '05 #6

### This discussion thread is closed

Replies have been disabled for this discussion.

### Similar topics

 2 posts views Thread by Matt | last post: by 4 posts views Thread by thomasp | last post: by 2 posts views Thread by dan heskett | last post: by reply views Thread by news | last post: by 4 posts views Thread by Jason Huang | last post: by 1 post views Thread by Rich | last post: by 1 post views Thread by balakrishnan.dinesh | last post: by 1 post views Thread by IvoShalev | last post: by 9 posts views Thread by zhaow | last post: by reply views Thread by rvphilip | last post: by reply views Thread by ioana budai | last post: by 1 post views Thread by CARIGAR | last post: by reply views Thread by zhoujie | last post: by 1 post views Thread by andreabiancu | last post: by 1 post views Thread by Geralt96 | last post: by 3 posts views Thread by skydivetom | last post: by reply views Thread by xarzu | last post: by reply views Thread by Marin | last post: by