|
when i tried running it ... it did crash
i know there is a way to fill in the polygon using something like poligonmode...
but i am not sure how to use that correctly..
what i am doing is using GL_LINES to draw a polygon and then need to fill it in.
how can i do that if not based on that function
or what changes should i make to the function itself.
|
|
|
|
|
If you want a filled polygon, why not just let OpenGL draw it as filled, which is the default. Start with glBegin(GL_POLYGON)...glColor..(), bunch of glVertex..() calls...glEnd(). Just be advised that the polygon has to be convex, it it's not, you need to break it until into as many convex polygons as needed.
"Republicans are the party that says government doesn't work and then they get elected and prove it." -- P.J. O'Rourke
|
|
|
|
|
Hey,
There doesn't seem to be any exit condition if you reach the edge of the image so you will be accessing memory you aren't meant to.
Either that or you are overflowing the stack and boom!
At university studying Software Engineering - if i say this line to girls i find they won't talk to me
Dan
|
|
|
|
|
If you are using recursion as shown, even if you're drawing a bounded shape, the maximum stack depth will be roughly equal to the number of pixels in the area to be filled. For shapes of non-trivial size, that's not going to work.
Much better would be to add points to be drawn into a queue and then have a loop which takes a point from the queue, fills it, and queues up any neighbors that need filling. If you use that approach, the number of items in the queue will be limited to approximately twice the larger dimension of the shape you're filling.
Performance with that approach won't be great, but it will work. Things may be improved considerably if each queue item is a horizontal line rather than just a point. The code will be more complicated, but if written properly it will run much faster. One caveat is that there won't be any nicely-defined limit on the required queue size. On the other hand, one could design the algorithm so that when the queue is nearly full, queue items that would generate too many more queue items simply get re-queued instead of being processed. Some care would be necessary to prevent 'deadlock' conditions, but I would expect that in practice things shouldn't be too bad.
|
|
|
|
|
how to take drawarea in our form.
|
|
|
|
|
Which tool and method would I use to change the background of an animated GIF from white to black? All the animation is in a circle, and I just need to make change the colour of the background around the circle. This would be easy in Paint.NET for a single frame image.
modified on Wednesday, March 4, 2009 3:30 PM
|
|
|
|
|
Adobe Image Ready comes with photoshop
KISS "Keep It Simple, Stupid"
|
|
|
|
|
That's really expensive for one GIF.
|
|
|
|
|
Just download trial
KISS "Keep It Simple, Stupid"
|
|
|
|
|
I'm sorry Martin, but VectorX, could you please possibly email me some pointers as to where to start, or is it self-explanatory? I'd love to spend all night exploring a nice tool, but I have a presentation tomorrow.
|
|
|
|
|
Adobe Image Ready is what I use for that kind of stuff.
Cheers,
Drew.
|
|
|
|
|
|
|
HEllo everyone,
i am new to OpenGL and trying to figure out how to draw a rectangle using only 2 vertices.
what i need to do is on button click select 2 opposite vertices like (0,0) and (10,10) let say. After i click 10,10 a rectangle should be drawn and it has to be not a solid line but dashed.
please tell me what to do and what to write where. I tried googling didn't find anything regarding this.
thanks
FYI: i am going to be using this rectangle for clipping polygons.
|
|
|
|
|
I orginally posted this in the C# form (the language I am trying to write this in) and recieved no responses . Thought I would try here before giving up.
I am trying to allow wrapping of a world map from east to west or west to east (the map is split down the Pacific Ocean). Thus the map would appear to be a cylinder not a rectangle. As the user scrolls across the dividing line the other map edge appears.
I thought this would be resonable but I have not been able to find much searching (map, warpping and scrolling appear in many contexts). Any help would be greatly appericated.
Thanks,
Jim
this thing looks like it was written by an epileptic ferret
Dave Kreskowiak
|
|
|
|
|
What you're after is applying Mercator Projection. This[^] might help you.
|
|
|
|
|
Yes, I want to apply a Mercator Projection but I don't think I was clear with my orginal question, I'll try again.
Only part of the map is visible at any given time. What happens when the user reaches the left/right edge of the map in order to see more they must scroll to the opposite edge. Similar to a huge mercator projection painted on a 500 foot long sheet of paper lying flat on the ground. You reach the end of the paper and if you want to see more of the map you have to go back to the other edge (what I have now). If what you are interested in is over or close to the split you are always going back and forth. Now picture that same map on cyclinderical tower which has a 500 foot diameter. The two edges of the map meet and you don't have to go back and forth (what I want to have).
I have attempted to do this by using an oversized map (shows 380 degrees of longtitude when viewed completely) and resetting the X location. I haven't been able to get this to work.
Any ideas?
Jim
this thing looks like it was written by an epileptic ferret
Dave Kreskowiak
|
|
|
|
|
Hi,
I don't see where the problem could be (unless you hope to solve this with a PictureBox ). Here are some thoughts, they may not be optimal, just intended to show a possible way:
1.
if you have an image of the world (say from longitude 0 to long 360), then you need to paint it in two steps, first from your starting longitude x0 upto 360, then from 0 to the right border (x0 again). So calling some overload of Graphics.DrawImage twice should do it.
An altenative is to construct a double-sized image once (that is from 0 to 360 and again from 0 to 360)
and then paint the right part of it.
2.
if you are drawing the world yourself, you can draw it in the regular way, you only need to adjust the x coordinate and again tranform the longitudes [0,360) to [x0...360, 0...x0).
This by itself could be handled by modifying all x coordinates; or more easily by having your paint code execute twice, once with a translation that takes care of the left part so [0, x0) gets clipped of at the left, and once with a translation that takes care of the right part so [x0, 360) gets clipped of at the right.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Thanks for your help.
Jim
this thing looks like it was written by an epileptic ferret
Dave Kreskowiak
|
|
|
|
|
You're welcome.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Im having trouble with the game im making (nothing fancy just my first 2D game)
and I almost got it complete, but i cant figure a way to get it to pause durring the game.
Im kinda new at DirectX so its probly simple, but ive looked everywhere,
someone recomended system pause but ive read that it should be avoided.
Anyone got any ideas? Or at least a hint in the right direction?
|
|
|
|
|
I assume you have a game loop in your project - if you do, then all you need to do is put a simple check into the loop to determine whether your game has paused or not. If you are in a pause, then the loop does no processing.
|
|
|
|
|
I am using graphics to create a speed meter.
To do this I would like to draw a line from the center of the circle to the side of the circle. You would normaly use sinus etc. for this, but my circle isn't really round, it's more oval like (the height is bigger than the width).
How is it possible to draw this line?
|
|
|
|
|
Hi,
a circle with radius r at the origin is represented by x*x + y*y = r*r
an ellips with big radius r at the origin is represented by x*x + a*a*y*y = r*r
where a (a factor larger than 1) is the ratio between the large radius (along the x-axis) and the small radius (along the y-axis).
So basically an ellips is a circle where you reduce y to y/a, and for each point (x,y) that would sit on the circle, the point (x, y/a) would sit at the corresponding location on the ellips.
To visualize: paint a circle on a sheet of paper, now tilt the sheet around a horizontal line: the circle becomes an ellips and all vertical dimensions shrink by the same factor.
Depending on what you want exactly, this might be all you need. When angles are involved, it gets a little bit more complex.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Thank you for explaining this. Seems not to hard.
But my question is indeed about angles.
If you would like to take a gast look to this picture so you understand what I'm making:
http://technology.amis.nl/blog/wp-content/images/postReadSpeedSpeedo.jpg[^]
The thing I want to make is an arrow like that based on an angle. The shape of the arrow is not a big deal, it's about the angle and how to know the length of the arrow.
|
|
|
|