Sign in to follow this  
intenseza

Randomly Generating Lines...

Recommended Posts

intenseza    119

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
fastcall22    10839

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 [tt]r[/tt] before the loop.

Share this post


Link to post
Share on other sites
intenseza    119

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
Rancorb    366

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this