recursively draw the line

M

Matt

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.
Please advise! Thanks!


#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
 
B

Ben Pfaff

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.
Please advise! Thanks!
#include <iostream>

That's not C.
The program output:
0.5
0.25
0.125

That's not a line. Those are numbers.
 
J

Jens.Toerring

Matt said:
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.
Please advise! Thanks!
#include <iostream>
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 said:
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
--
_ _____ _____
| ||_ _||_ _| (e-mail address removed)-berlin.de
_ | | | | | |
| |_| | | | | | http://www.physik.fu-berlin.de/~toerring
\___/ens|_|homs|_|oerring
 
R

Richard Heathfield

Matt said:
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. Please advise! Thanks!


#include <iostream>
using namespace std;

Try comp.lang.c++
 
B

Barry Schwarz

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

Answered in alt.math. Please don't post the same message under
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>>
 
J

Julian V. Noble

Matt said:
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
(e-mail address removed)
^^^^^^^^^^^^^^^^^^
http://galileo.phys.virginia.edu/~jvn/

"Science knows only one commandment: contribute to science."
-- Bertolt Brecht, "Galileo".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top