• Advertisement
Sign in to follow this  

Randomly Generating Lines...

This topic is 1783 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey all.

 

Why won't this code work? I'm trying to randomly draw lines...

 

 

public void GenerateRandomObjects()
        {
 
 
            for (int i = 1; i <= 10; i++)
            {
                Gl.glBegin(Gl.GL_LINES);
 
                Random r = new Random();
 
                int X1 = r.Next(800);
                int X2 = r.Next(800);
                int Y1 = r.Next(800);
                int Y2 = r.Next(800);
 
                Gl.glVertex2i(X1, Y1);
                Gl.glVertex2i(X2, Y2);
 
                Gl.glEnd();
 
            }
 
            Gl.glFlush();
 
        }
 
 
It produces 1 line :/
Edited by intenseza

Share this post


Link to post
Share on other sites
Advertisement

I'm trying to randomly draw lines...
It produces 1 line :/

It's actually drawing the same line 10 times. This is because you are resetting the RNG after every iteration. See the System.Random constructor. The default constructor sets the seed to the current system time in seconds. Because it takes less than a second to draw those lines, you are getting the same seed, and consequently the same sequence of random numbers.

You'll need to move r before the loop.

Share this post


Link to post
Share on other sites

You Sir are a lifesaver. I would have spent hours trying to figure it out. Bless you!

Share this post


Link to post
Share on other sites

Sorry to worry again. I'm implementing the cohen clipping algorithm and in order to do this, I need to be able to show the parts of the line that are outside the viewport in a different colour. Firstly, how is it possible to show objects that aren't within the viewport?

Share this post


Link to post
Share on other sites

My guess is define your own "viewport" that is smaller than the screen size. Then you just need to find the intersections of each line with your viewport rectangle and draw the segments of each line in the required colour based on the start point, intersection point(s) and end point.

 

Don't forget to draw the rectangle to show your viewport.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement