Thursday, May 31, 2007

Where Can I Buy Fake Braces In Buffalo

Previous Previous 9 10

Animation

skeletal

is a computer animation technique, this is particularly used in the animation of vertebrates, where a character is represented into two parts, a surface representation used to draw the character, called the skin, and a hierarchical construction of bones used only for animation, this is called the skeleton.

This technique is used to build a series of "bones", each bone has a transformation three dimensions, which includes position, scale and orientation, and an optional parent bone. In this way the bones are a hierarchy. The complete transformed a child node is the product of his father and transformed itself transformed. So move the thigh bone will also move the shinbone. As the character is animated, the bones change their transformation over time while under the influence of some animation controls.

Each bone skeleton is associated with any portion of the visual representation of the character. In the most common case of a character polygonal mesh, the mesh is associated with a group of vertices, for example, in a model of a human thigh bone will be associated with the vertices are the polygon model of the thigh . Portions of the character's skin can be associated with multiple bones, each having a scale factor called the vertex weight, or weight of the mixture. The movement of the skin near the joints, can therefore be influenced by the two bones.

For a polygonal mesh, each vertex can have a mixing weight for each bone. To calculate the final position of the vertex, each bone transform is applied to the position of the vertex. Scaled by its corresponding weight. This algorithm is called matrix palette of skin, because the whole blood processed, stored and transformed matrices, form a palette for each vertex of the skin to get elected.

skeletal animation is useful because it enables animators to control only those features of the model that move independently. A character can not move your lower shin at the top regardless. Instead of making a vertex by vertex animation just move the bone and it s related vertices. The disadvantage of this type of animation is that it provides a realistic animation of the muscles, to solve this special controls are added muscle which are attached to bones, all to represent the full movement of the muscle.

skeletal animation is a standard way to animate characters or mechanical objects for a long time, usually more than 100 pictures, is generally used in video games and film industry can also be applied to mechanical objects and any other object with rigid elements joints.


FBX

FBX provides a universal 3D asset exchange, this is an exchange format and 3D CREATION, platform independent and completely free (but not free), the FBX file format supports all major 3D data elements and 2D elements, audio and video media.

in if FBX format is a mix between binary and ASCII code, because it can handle, store, convert and convey complex 3D scenes with 2D agreed, as an example of this is:

· polygonal meshes and NURBS

· mapping of textures and materials

· normal vertices per vertex color mapping

· Links checkpoints

· Multiple cameras and camera exchange

· Multiple types of lights

· Bookmarks

· skeleton segments (root, limbs and extremities nodes)

· Several shots mocap animations

· positions in a linked list of nodes

· video clips (embedded or referenced)

· audio clips (embedded or referenced)

· Shaders

Format X

X format The DirectX file format, this format is an architecture and file format free of context. It is driven by templates and is free for any use. The file format may be used by any client application and is currently being used in Direct3D Retained Mode to describe the geometry data, pictures and animation hierarchy

format. X stores everything in a hierarchical approach. Each level of the hierarchy can have any number of "objects" to keep data, but you should only have a small number of "objects" for each level. The "object" principal geometric hierarchy model is a picture. For animations, the "object" in the hierarchy is a set of animation.

Tuesday, May 22, 2007

Wesson Cooking Oil And Pyrex Rod



1. Research on manual methods of animation

- Key frames (key frames)

are pictures or drawings which define an essential part of start and end between transition points. These are called "frames" because their long life are part of a film. A sequence of keyframes defines the movement that the viewer can see, sometimes the position of the keyframes in a film, video or animation defines the time of the movement. For the duration of only 2 or 3 keyframes in a second does not produce an illusion of movement, the permanence of the frames are set with more pictures or images, called "inbetweens."

- Forward Kinematics (Kinematics)
is a method of 3D computer graphics for animation of models. The essential concept of this concept is that the position of particular parts of a model in a specific time are calculated from the position of the object orientation d, along with information on the union of a joint model.

- Inverse Kinematics (Inverse Kinematics)
is a process used in the animation of 3D computer graphics, which requires calculating the articulation of a series of tips or Conjuntura, as at the end of limbs to up in a particular location.

- Motion Capture (Motion Capture)
is a digital recording technique of movements for entertainment or entertainment, sports and medical applications. It uses multiple capture systems from the optical, mechanical, magnetic systems, either through the use of sensors or other devices. Movements not only records the appearance, this method has emerged as military research.

2. Discuss the advantages / disadvantages of each method and give examples (at least two) of situations in which each is best applied.

Keyframes (Tables Key):

Advantages:
Easy to handle
Useful for quick videos.
only takes basic shapes.

Disadvantages: Inefficient
for good animation.
For a big job you need several basic shapes.

Applications:

Films Videos
Business Presentations


Forward Kinematics (Kinematics):

Advantages:
behaviors.
certain positions.
every move is planned.

Disadvantages:
not define physical laws like gravity and collisions.

Applications: Robotics

Games
Computer Animation.

Inverse Kinematics (Inverse Kinematics):

Advantages:
Responsible for joint requirements.

Disadvantages: Limits

anthropomorphic joint limits

Applications:
Robotica
Computer Animation.

Motion Capture (motion capture):

Advantages: Faster
sometimes gives better results in real time.
The workload does not vary with the complexity and size of the quality or the same degree when using traditional techniques.

complex movement and realistic physical interactions such as a secondary animation, weight and exchange of forces can be more easily created with a precise check.
technology gives an actor to play multiple roles with a single film.

Disadvantages:
specific hardware needs and special programs required to obtain and process data.
The cost of software and equipment, required personnel may not be feasible for small productions.

capture system should have specific requirements to be operated on them.
When problems occur they can be easily Retracing the scene is better than trying to manipulate the data. Only few systems accommodate real-time view of data to decide whether to take action on the matter or have to redo. Expanded

motion to quadruple characters can be difficult.
technology can become obsolete in a few years as well as software and development techniques.

The results are limited to the existence of a high quality capture depending on the volume and extra edition of the data.

movement can not follow the laws of physics generally can not be represented.
traditional animation techniques such as stress or the anticipation and follow-side movement or manipulation, are narrow in the animation and generally do not apply.

If the computer model has different proportions from the capture of the object, this can occur.

real quality of life can not move the computer model as expected.

Applications:
In games where motion capture, for example: football, basketball and martial arts fighting, action sports in general.

CG effects to capture, in some cases replace cell animation, and fully computer spawns as Golum, The Mummy and King Kong
Virtual Reality for real-time interaction. Just as visualization. Character generation in real time.


3. Find out which method of animation using models Quake and Unreal Tournament. Search using OpenGL code that allows to visualize a model and run these games.

UNREAL TOURNAMENT - uses a skeletal animation system that supports up to four bone influences per vertex and complex skeletons.

LOD support full-mesh and bone.

AnimSet

-Viewer tool for organizing and finding animations and meshes:

-Ability to add specific notifications to the game at specific points in the animation.

place

-Tools 'Sockets' graphically on the bones to be used to attach objects to the skeleton in the game, complete with preview. Ability

-coated mesh preview based on the same skeleton (eg, armor).

-The animation is driven by a "AnimTree" - a tree of nodes of entertainment, including:

-blended controls that play a mixture of n modes between objects nested animation.

-managed by computerized controls, encapsulating motion capture or hand animation information.

- physical controls, tying the engine rigid body dynamics for a player of "rag doll" and NPC animation and physical response to impulses.

- skeleton procedural controls for game features, like having a head and eyes to track the player NPC walking by one level.

- A tool that solves inverse kinematics to calculate the positions of the member based on global locations (eg, placement of feet).

- AnimTree Editor allows programmers and animators to create complex mixtures and adjusting controls to preview them in real time in the editor.

- new node types and controller can be added easily to a specific control of the game.

- Export tools for 3D Studio Max, Maya and XSI to bring weight meshes, skeletons and sequences animation engine. QUAKE


Quake engine (III) loading 3D models MD3 formats. The format used vertices of movement, contrary to the animation skeleton used to save the animation. The animation features in the MD3 format is superior to the format used in Quake II MD2, because an animator can make the number of key frames per second is less and more than 10 key frames per second. This allows more complex animations that are less "shaky" than Quake II models.

Another important feature of the MD3 format is that the models are broken down into 3 different parts anchored the each other. Typically, this is used to separate the head, torso and legs so that each part can move independently in either a procedural animation. Each part of the model has its own set of textures.

The character models are lit and shaded using Gouraud shading while levels (stored in formats BSP) with either light or light maps Gouraud shading depending on user preference. The engine is capable of making colored lights wiring lights and apply the model, resulting in a quality of light, which was, for its time, very advanced.

The engine is capable of playing three types of shadows. One only puts a circle with feathered ends at the foot of the character, while the other two forms cast a shadow on the floor right polygon. The difference between the latter two methods is the dependence of shades of black, opaque and solid while the other attempts (with mixed success) to cast shadows of stencil shadow volume depth in a semi-transparent black.

languages \u200b\u200bOther features include high-level shadows and a method for deploying mist.

Monday, May 14, 2007

How To Catch Libra Males Eye



bitpantalla int (int x, int y) {

getpixel return (x, y);}



Algorithm:

For each scan line (y = 0 ,..., YMAX) to

1. initialize x = 0
2. while (bitpantalla <> border color) x = x +1

3. xinicio = x
4. while (bitpantalla <> border color) x = x +1

5. xfin = x
6. line (xinicio, and xfin, and color)



Source.

http://www.inf.unitru.edu.pe/ ~ vncc/documentos/clases/cg1-u31.pdf

Tuesday, May 8, 2007

Best Match Balls Rugby

Previous Task 8 8. Textures and light sources

1 .- Investigate how to create and define a light source with OpenGL
- Creation of light
- How many lights can be set
- Parameters of the light source
- Types of lights - light color
- Enable, Disable lights.
- Light by default and default features

The lighting of a scene should follow the following: - Define normal vectors for all vertices of the objects - Place light sources - Choose the type of light - Choose the type of material of each object first executes the command glEnable (GL_LIGHTING), with estimates that are activated lighting necessary.
In standard definition, there are 8 light sources since LIGHT0 to LIGHT7. In OpenGL you can define three different forms of light, these are: ENVIRONMENT, ENVIRONMENT .- \u200b\u200bdiffuse and specular light comes from all directions in a distributed and is reflected equally by the polygons of the scene. .- Diffused light coming from a point source in particular, and touches the surface with an intensity that depends on which comes face to the light, this type of lighting is the one that best defines the contour of 3D objects is TRADING .- the light emitted from the object in a distributed in all directions. The light has the properties of color, position and direction. The color will the lights is determined by the three color components which handles OpenGL, red, green and blue.
The command used to specify all the properties of light is glLiht (), this command has three arguments to identify the light that is in use, ownership and value for the property. After defining the characteristics of the lights come on with the command glEnable (name of the light source to activate). There is also a function to turn off lighting glDisable and off is specified light. The characteristics of light by default to glLight are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION. And GL_DIFFUSE GL_ESPECULAR used only with the first source of light. GL_AMBIENT: Sets the values \u200b\u200bof the ambient light. RGBA value, default value is (0.0,0.0,0.0,1.0) GL_DIFFUSE: Sets the values \u200b\u200bof scattered light. RGBA value. default value is (1.0,1.0,1.0,1.0) GL_SPECULAR: Sets the values \u200b\u200bof the specular light. RGBA value. The default value is (1.0,1.0,1.0,1.0) GL_POSITION: Position of light in coordinates {x, y, z, w}, its default value is (0.0,0.0,1.0,0.0) GL_SPOT_DIRECTION: Vector direction of light in coordinates {x, y, z}, the default is (0.0,0.0, -1.0) GL_SPOT_EXPONENT: Represents the concentration intensity of light. Scalar, default 0. GL_SPOT_CUTOFF: angle of the cone of light. Scalar value, default 180. GL_CONSTANT_ATTENUATION: Constant attenuation applied to the light based on distance. Scalar, default 1 GL_LINEAR_ATTENUATION: linear attenuation applied to the light based on distance. Scalar, default 0GL_QUADRATIC_ATTENUATION: quadratic attenuation applied to the light based on distance. Scalar, default 0

2 .- Investigate the difference between light and lighting (light / lighting)
- enabling / disabling the ilumnacion (How?)
- Why you need to enable and disable the light?
Light is a focal point which illuminates objects in a certain range, is a very defined and easy to find, however the lighting gives a light intensity in a wider range giving the impression that there a focal point where the light is emitted, the lighting is a type of light which has no direct impact on the objects. To enable and disable one of the lighting using the commands glEnable (nombre_iluminación) and glDisable (nombre_iluminación). The light source is created with glLightfv (GL_LIGHT0, GL_AMBIENT, ambient light);



3 .- Find out the definition of material properties to a surface
- Characteristics of materials (diffuse, specular, brightness, emissivity, etc)
- How are they defined?
- On which side (s) of a polygon apply

materials Depending on the material properties of light has a different effect on them These properties are defined glMaterial: void glMaterial (GLenum face, GLenum name, TYPOparam) face argument determines the face of the object in which we apply the property, has the following values: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK. The following indicates the property to be used for that face, it can be: GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE, GL_SPECULAR, GL_SHININESS, GL_EMISSION, GL_COLOR_INDEXES.
The last parameter specifies a pointer to the value or values \u200b\u200bthat the parameter name to take. · GL_AMBIENT .- \u200b\u200bmaterial ambient color, default values \u200b\u200bare (0.2, 0.2, 0.2, 1.0). · GL_DIFFUSE .- diffuse material color, default values \u200b\u200bare (0.8, 0.8, 0.8, 1.0). · GL_AMBIENT_AND_DIFFUSE .- ambient color and diffuse Materiel · GL_SHININESS .- specular exponent, its value is 0. · GL_EMISSION .- the emission color of the material, their default values \u200b\u200bare (0.0, 0.0, 0.0, 1.0). · GL_COLOR_INDEXES .- ambient color index diffuse and specular, default values \u200b\u200bare (0, 1, 1). It is important to note that developed the optical effect of light on the material depends greatly on the characteristics. They complement each other giving the desired effect.

4 .- Investigate the OpenGL texture mapping - Load bitmap definition - Transformations of the texture - Methods of Application of a texture (repeat, wrap, etc..) - Mapping the texture to a surface

Loading texture memory
The charging process the texture memory is not like OpenGL. You have to make an external function. There are some limitations imposed by the library. The size of all textures carguentienen to be powers of 2, such as 64x64, 128x64, etc. You have to keep in mind that if sedebe be drawing in RGB, not indexed color, or by loading textures in RGB format.
If you load a GIF image, which has indexed color, you have to schedule an extra function to convert to RGB .. Whatever the method, the final will have a pointer to a memory segment that contains the image: unsigned char * texture, is also important to keep the texture properties, specifically its size width and height and depth in bits. If you're working in RGB, the depth is 24 bits. The steps are: •

determined the size ·
estimate the memory that will be necessary ·
reserve memory ·
TGA file generation which comes in RGB format.

If not in this format should make the conversion. Once we have the image loaded into memory, the steps are: • Generating the reference for the texture. [GlGenTextures (1, & texture);] With the texture GLuint you reference "the texture." If you want more, you must create an array of GLuint. 1 means that only generate a texture. · Index that texture: [glBindTexture (GL_TEXTURE_2D, texture);].

This function says that now onwards, all operations involving the handling of textures were applied on this texture. In this case a 2D etextura · specify the filters to the texture: o glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST) \u200b\u200b· OpenGL can apply filters to the textures for better viewing. The first line specifies the filter to use if the texture look larger than it actually is (increase). The second specifies the filter for the texture look smaller than it actually is. Here we use a linear filter for the 1st and the second case discussed below.
Another value could have used the GL_NEAREST, a filter worst but faster · We texture mipmaps through for better performance, instead of filtering the dynamic texture, creating a mipmap, we create various textures different sizes (from the original to smallest). OpenGL, determined on the basis of distance that is the object with the texture, what mipmap to use.

Finally, one need only enable the use of textures:
glEnable (GL_TEXTURE_2D);
In init_gl function. TEXTURE TRANSFORMATION For TGA image generation in memory. The TGA must have the following characteristics:

• Be 24-bit
· Canal ALPHA. (32 bits) and uncompressed
• The size must be square (x = y) and 32x32 or 64x64 or 128x128 or 256x256

If the above is true, it returns a pointer to the image and size Image Texture Mapping FOR TEXTURE 1D • To set the texture: • void glTexImage1D (GLenum target, Glint level • Glint components, GLsizei width, Glint border, GLenum format, GLenum type, const GLvoid * pixels) • Where: Target is always worth GL_TEXTURE_1D-level indicates the level of detail (0 for individual textures)-components worth 1 (rate mode), 3 (RGB) or 4 (RGBA)-width indicates the width in pixel of the texture map (must be a power of 2)-edge indicates the number of pixels that form the border of the texture (0, 1 or 2)-format indicates the format of the pixels: GL_RED, GL_RGB, GL_LUMINANCE-type indicates the data type of pixels: GL_UNSIGNED_INT, GL_FLOAT-pixels is a pointer to the pixels of the texture TEXTURE MAPPING FOR 2D • To set the texture:
• void glTexImage2D (GLenum target, Glint level
• Glint components, GLsizei width, GLsizei height,
• Glint border, GLenum format, GLenum type,
• const GLvoid * pixels) • Where: Target is always worth GL_TEXTURE_2D-level indicates the level of detail (0 for individual textures)-components worth 1 (rate mode or luminance ), 3 (RGB) or 4 (RGBA)-width indicates the width in pixels of the texture map (must be a power of 2)-high indicator height in pixels of the texture map (must be a power of 2)-edge indicates the number of pixels that form the border of the texture (0, 1 or 2)-format indicates the format of the pixels: GL_RED, GL_RGB, GL_LUMINANCE -type indicates the data type of pixels: GL_UNSIGNED_INT, GL_FLOAT-pixels is a pointer to the pixels of the texture TEXTURE MAPPING IN AN AREA • By mapping the texture image onto a surface, the texels will not correspond exactly with pixels Magnification: If the surface is greater than the texture, each pixel will correspond to a small piece of texel minification: If the surface is less than the texture, each pixel will correspond to a set adjacent texels
mapping modes
• To set the mapping mode:
• glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, Glint value)
• where value can take 3 values: "GL_DECAL: the value texel is copied directly to the pixel-GL_MODULATE: texel value is scaled by the color of the object-GL_BLEND: texel value is used to interpolate between the object's color and a constant color to the texture defined by the function
• glTexEnvfv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GLfloat color [4]) MODES OF APPLICATION OF TEXTURES GL TEXTURE WRAP S Sets wrap parameter for texture coordinate s GL_CLAMP, GL_CLAMP_TO_EDGE or GL_REPEAT. GL_CLAMP causes s coordinates are limited to the range [0.1] and is useful for preventing wrapping artifacts (compression?) When mapping a single image on an object.
GL_CLAMP_TO_EDGE causes s coordinates are limited to the range [1/2n, 1 - (1/2n) i], where n is the size of the texture in the direction of the boundary. GL_REPEAT causes the integer part of s are ignored, the GL uses only the fractional part, thereby creating a repeating pattern. The Border texture elements are accessed only if wrapping is set to GL_CLAMP. Initially set GL_TEXTURE_WRAP_S to GL_REPEAT. GL TEXTURE WRAP T Sets the wrap parameter for texture coordinate t GL_CLAMP, GL_CLAMP_TO_EDGE or GL_REPEAT (see above). Initially set to GL_REPEAT GL_TEXTURE_WRAP_T.

5 .- Write a program that defines two distinct features lights Draw a cube in which each side has different material properties applied to Draw a cube on each side which applies a different texture. One of them must be a photo of the student. Pressing the left mouse button on / off the first light Pressing the right mouse button on / off the second light when using the keyboard arrow keys change the position of the first light.

/ / Previous 8
/ / Cube textured Christian Duran Jorge Lara

# include / / glut library tool

# include # include "bitmap.h"

BITMAPINFO * texinfo / * Texture bitmap information * / GLubyte * TexBits
/ * Texture Bitmap pixel bits * / int r =-
45, rx = 30, rz = 0;
cubo_relleno
void (void) {


glRotatef (rx, 1.0,0.0,0.0 )
glRotatef (ry, 0.0,1.0,0.0);
/ / glRotatef (rz, 0.0,0.0,1.0);
glColor3f (1.0, 1.0, 1.0);
glTranslatef (0.0,0.0,0.0);

/ / activate texture mapping
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("glass.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(1.0,1.0); glVertex3f(0.5,0.5,0.5);
glTexCoord2f(0.0,1.0); glVertex3f(-0.5,0.5,0.5);
glTexCoord2f(0.0,0.0); glVertex3f(-0.5,-0.5,0.5);
glTexCoord2f(1.0,0.0); glVertex3f(0.5,-0.5,0.5);
glEnd();
glDisable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("sirenoman2.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(1.0,1.0); glVertex3f(-0.5,0.5,-0.5);
glTexCoord2f(0.0,1.0); glVertex3f( 0.5,0.5,-0.5);
glTexCoord2f(0.0,0.0); glVertex3f(0.5,-0.5,-0.5);
glTexCoord2f(1.0,0.0); glVertex3f(-0.5,-0.5,-0.5);
glEnd();
glDisable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("Logo_BCU.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(1.0,1.0); glVertex3f(-0.5,0.5,0.5);
glTexCoord2f(0.0,1.0); glVertex3f(-0.5,0.5,-0.5);
glTexCoord2f(0.0,0.0); glVertex3f(-0.5,-0.5,-0.5);
glTexCoord2f(1.0,0.0); glVertex3f(-0.5,-0.5,0.5);
glEnd();
glDisable(GL_TEXTURE_2D);
//TexBits = LoadDIBitmap("mrbighead.bmp", &TexInfo);
//glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("spirit.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(0.0,1.0); glVertex3f(0.5,0.5,0.5);
glTexCoord2f(0.0,0.0); glVertex3f(0.5,-0.5,0.5);
glTexCoord2f(1.0,0.0); glVertex3f( 0.5,-0.5,-0.5);
glTexCoord2f(1.0,1.0); glVertex3f(0.5,0.5,-0.5);
glEnd();
glDisable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("Cascada1.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(0.0,1.0); glVertex3f(-0.5,0.5,-0.5);
glTexCoord2f(0.0,0.0); glVertex3f(-0.5,0.5,0.5);
glTexCoord2f(1.0,0.0); glVertex3f(0.5,0.5,0.5);
glTexCoord2f(1.0,1.0); glVertex3f( 0.5,0.5,-0.5);
glEnd();
glDisable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
TexBits = LoadDIBitmap("Kylie.bmp", &TexInfo);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth,TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT,GL_UNSIGNED_BYTE, TexBits);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glBegin (GL_QUADS)
glTexCoord2f (0.0,0.0) glVertex3f (0.5, -0.5, -0.5);
glTexCoord2f (1.0,0.0) glVertex3f (-0.5, -0.5, -0.5);
glTexCoord2f (1.0,1.0) glVertex3f (-0.5, -0.5,0.5);
glTexCoord2f (0.0,1.0) glVertex3f (0.5, -0.5,0.5);
glEnd ();
glDisable (GL_TEXTURE_2D);


} void display () {

glClearColor (0.0, 0.0, 0.0, 0.0), / / \u200b\u200bchoose the color of lines and solid
glLoadIdentity ();
glEnable (GL_DEPTH_TEST)
gluLookAt (0.0,0.0,3.0,0.0 , 0.0, 0.0, 0.0, 1.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT
//{
// glViewport (0, 0, (GLsizei) w, (GLsizei) h);
// glMatrixMode (GL_PROJECTION);
// glLoadIdentity ();
// glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
// glMatrixMode (GL_MODELVIEW);
//}


void arrow_keys ( int a_keys, int x, int y ) // Create Special Function (required for arrow keys)
{
switch ( a_keys ) {
case GLUT_KEY_UP: // When Up Arrow Is Pressed...
rx = rx - 2;
glutPostRedisplay();
/*rx=rx-2;
humanoide();*/
break;
case GLUT_KEY_DOWN: // When Down Arrow Is Pressed...
rx = rx + 2;
glutPostRedisplay();
//rx=rx+2;
//humanoide();
break;
case GLUT_KEY_LEFT: // When Down Arrow Is Pressed...
ry = ry - 2;
glutPostRedisplay();
//ry=ry-2;
//humanoide();
break;
case GLUT_KEY_RIGHT: // When Down Arrow Is Pressed...
ry = ry + 2;
glutPostRedisplay();
//ry=ry+2;
//display();
break;

default:
break;
}
}

/* ARGSUSED1 */
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}


int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_RGB
glutKeyboardFunc (keyboard);
glutSpecialFunc (arrow_keys)
glutMainLoop ();
return 0;}







Prior to the lights



# include # include static int


Spinx = 0 ;
spiny static int = 0;
static int p1 = 1;
static int p2 = 1;
static int ry, rx, rz;
/ * Initialize prpiedaes material, light source and z buffer * /
void init (void) {

glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_SMOOTH)
glEnable (GL_LIGHTING)
glEnable (GL_LIGHT0)
glEnable (GL_LIGHT1)
glEnable (GL_DEPTH_TEST) } void display (void) {
/ * Arrays for the light * /
GLfloat position [] = {0.0, 0.0, 2.5, 0.0};
GLfloat position2 [] = {0.0, 3.0, 3.0, 0.0}; light_ambient GLfloat [] = {0.4, 0.4, 0.4, 1.0};
light_diffuse GLfloat [] = {0.4, 0.4, 0.4, 1.0}; light_specular GLfloat [] = {0.8, 0.8, 0.8, 1.0};
/ * Arrays for material * / GLfloat
no_mat [] = {0.0,0.0,0.0,1.0};
mat_ambient GLfloat [] = {0.7,0.7,0.7,1.0} ;
mat_ambient_color GLfloat [] = {0.8,0.8,0.2,1.0};
GLfloat mat_diffuse[] = {0.1,0.5,0.8,1.0};
GLfloat mat_specular[] = {1.0,1.0,1.0,1.0};
GLfloat no_shininess[] = {0.0};
GLfloat low_shininess[] = {5.0};
GLfloat high_shininess[] = {100.0};
GLfloat mat_emission[] = {0.3,0.2,0.2,1.0};

GLfloat mat_amb_diff[] = {0.1, 0.5, 0.8, 1.0};
GLfloat mat_amb_diff2[] = {1.0, 0.1, 0.1, 1.0};
GLfloat mat_emission1[] = {0.3,0.8,0.2,1.0};



glClear (GL_COLOR_BUFFER_BIT 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

/ light * 0 * /
glPushMatrix ();
glRotated ((GLdouble) Spinx, 1.0, 0.0, 0.0);
glRotated ((GLdouble) spiny , 0.0, 1.0, 0.0);
glLightfv (GL_LIGHT0, GL_POSITION, position);


glTranslated (0.0, 0.0,2.5);
glDisable (GL_LIGHTING);
glColor3f (1.0, 1.0, 1.0);
glutWireCube (0.1 );
glEnable (GL_LIGHTING);
glPopMatrix ();
/ * end light 0 * /

/ * light * 1 /
glPushMatrix ();
glLightfv (GL_LIGHT1, GL_POSITION, position2);
glLightfv (GL_LIGHT1, GL_AMBIENT, light_ambient) / / GL_DIFFUSE
glLightfv (GL_LIGHT1, GL_DIFFUSE, light_diffuse);
glLightfv (GL_LIGHT1, GL_SPECULAR, light_specular);

glTranslated (0.0,2.5,2.5);
glDisable (GL_LIGHTING) glColor3f
(1.0, 1.0, 1.0);
glutWireCube (0.1);
glEnable (GL_LIGHTING);
glPopMatrix ();
/ * 1 * fin light /

/ materials * cube * /
glPushMatrix ();
glScalef (2 , 2.2);
glRotatef (rx, 1.0,0.0,0.0);
glRotatef (ry, 0.0,1.0,0.0);
glRotatef (rz, 0.0,0.0,1.0);

glPushMatrix ();
/ * Only spread across * /
glMaterialfv (GL_FRONT, GL_AMBIENT, no_mat)
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv (GL_FRONT, GL_SPECULAR, no_mat)
glMaterialfv (GL_FRONT, GL_SHININESS, no_shininess) ;
glMaterialfv (GL_FRONT, GL_EMISSION, no_mat)

glBegin (GL_QUADS)
glNormal3f (0.0,0.0,1.0);
glVertex3f (0.5,0.5,0.5) glVertex3f
(-0.5,0.5,0.5)
glVertex3f (-0.5, -0.5,0.5);
glVertex3f (0.5, -0.5,0.5);
glEnd ();
glPopMatrix ();

glPushMatrix ();
/ * diffuse and specular low brightness * /
glMaterialfv (GL_FRONT, GL_AMBIENT, no_mat)
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular)
glMaterialfv (GL_FRONT, GL_SHININESS, low_shininess) ;
glMaterialfv (GL_FRONT, GL_EMISSION, no_mat)

glBegin (GL_QUADS)
glNormal3f (0.0,0.0, -1.0);
glVertex3f (-0.5,0.5, -0.5);
glVertex3f (0.5,0.5, -0.5 )
glVertex3f (0.5, -0.5, -0.5);
glVertex3f (-0.5, -0.5, -0.5);
glEnd ();
glPopMatrix ();

glPushMatrix ();
/ * diffuse, with high gloss specular * /
glMaterialfv (GL_FRONT, GL_AMBIENT, no_mat)
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular)
glMaterialfv ( GL_FRONT, GL_SHININESS, high_shininess)
glMaterialfv (GL_FRONT, GL_EMISSION, no_mat)

glBegin (GL_QUADS)
glNormal3f (-1.0,0.0,0.0)
glVertex3f (-0.5,0.5,0.5)
glVertex3f (- 0.5,0.5, -0.5);
glVertex3f (-0.5, -0.5, -0.5);
glVertex3f (-0.5, -0.5,0.5);
glEnd ();
glPopMatrix ();

glPushMatrix ();
/ * ambient, diffuse and Broadcast * /
glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient)
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv (GL_FRONT, GL_SPECULAR, no_mat) ;
glMaterialfv (GL_FRONT, GL_SHININESS, no_shininess)
glMaterialfv (GL_FRONT, GL_EMISSION, mat_emission)

glBegin (GL_QUADS)
glNormal3f (1.0,0.0,0.0);
glVertex3f (0.5,0.5,0.5) glVertex3f
(0.5, -0.5,0.5);
glVertex3f (0.5, -0.5, -0.5);
glVertex3f (0.5,0.5, -0.5);
glEnd ();
glPopMatrix ();

glPushMatrix ();
/ * ambient color, diffuse, reflection mirror and dim * /
glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient_color)
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular)
glMaterialfv (GL_FRONT, GL_SHININESS, low_shininess)
glMaterialfv (GL_FRONT, GL_EMISSION, no_mat)

glBegin (GL_QUADS)
glNormal3f (0.0,1.0,0.0);
glVertex3f (-0.5, 0.5, -0.5);
glVertex3f (-0.5,0.5,0.5)
glVertex3f (0.5,0.5,0.5);
glVertex3f (0.5,0.5, -0.5);
glEnd ();
glPopMatrix ();

glPushMatrix ();
/ * ambient color, diffuse, reflection mirror and high brightness * /
glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient_color )
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse)
glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular)
glMaterialfv (GL_FRONT, GL_SHININESS, high_shininess)
glMaterialfv (GL_FRONT, GL_EMISSION, no_mat)

glBegin (GL_QUADS)
glNormal3f (0.0, -1.0,0.0);
glVertex3f (0.5, -0.5, -0.5);
glVertex3f (-0.5, -0.5, -0.5);
glVertex3f(-0.5,-0.5,0.5);
glVertex3f(0.5,-0.5,0.5);
glEnd();
glPopMatrix ();
glPopMatrix ();

/*fin cubo de materiales*/
glPopMatrix ();
glFlush ();
}

void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

/* ARGSUSED2 */
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN) {
if (p1 == 1)
{
glDisable(GL_LIGHT0);
p1 = 0;
glutPostRedisplay();
}
else
{
glEnable(GL_LIGHT0);
p1 = 1;
glutPostRedisplay();
}
}
break;
case GLUT_RIGHT_BUTTON:
if (state == GLUT_DOWN) {
if (p1 == 1)
{
glDisable(GL_LIGHT1);
p1 = 0;
glutPostRedisplay();
}
else
{
glEnable(GL_LIGHT1);
p1 = 1;
glutPostRedisplay();
}
}
break;
default:
break;
}
}
void special(int key, int x, int y)
{
switch (key)
{
case GLUT_KEY_RIGHT:
spiny = (spiny + 3) % 360;
glutPostRedisplay();
break;
case GLUT_KEY_LEFT:
spiny = (spiny - 3) % 360;
glutPostRedisplay();
break;
case GLUT_KEY_UP:
spinx = (spinx - 3) % 360;
glutPostRedisplay();
break;
case GLUT_KEY_DOWN:
spinx = (spinx + 3) % 360;
glutPostRedisplay();
break;
default:
break;
}
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
case 'a':
ry = (ry + 3)%360;
glutPostRedisplay();
break;
case 's':
rx = (rx + 3)%360;
glutPostRedisplay();
break;
case 'd':
rz = (rz + 3)%360;
glutPostRedisplay();
break;
case 'p':
spinx = 0;
spiny = 0;
rx = 0;
rz = 0;
ry = 0;
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glutPostRedisplay();
break;

}


} int main (int argc, char ** argv) {

glutInit (& argc, argv);
glutInitDisplayMode (GLUT_SINGLE

is that which comes from a particular direction and is reflected in a
one direction, so that it produces intense glare in certain areas.
is the case, for example, of metal objects.

Every light bulb in the scene has three components: ambient light, diffuse light and specular light. The proportion of each component determines the type of light. For example, a laser is almost entirely composed of specular light.






The diffuse and environmental components are minimal and are due to the presence of dust in the atmosphere
. A focus, however, is an important part of ambient light and diffuse and a fraction
specular light.

When defining a light bulb is not only necessary to define the three components of the light, but also the color of each component. Browse Source





www.cs.buap.mx/ ~ asanchez/iluminacion2.pdf





Thursday, May 3, 2007

Fighting Cancer Inspirational Quotes






javascript: void (0) Post



Wednesday, April 18, 2007

Eggwhite Discharge Before Period

Task 7 Report of curiosity


/ / previous 7


/ / a) When launching the program first opens a window that displays viewport
/ / a fractal (Sierpenski Gasket)


/ / b) By click the left mouse button on the view port, output prints


/ / standard coordinates of the mouse cursor and creates a new window which will


/ / "draw" these coordinates and shifts the focus of the application to the window. Clicking

/ / with the right button on that window closes and focus returns to the initial window.
/ /


/ / c) in the initial screen, clicking the right button opens a window that draws


/ / parameterized humanoid (developed in previous practices) in an animation tour

/ / for the event idle. It changes the focus to this window. / / / / Christian Durán Jorge Lara Speakeasy Speed Test

# include # include


void init (void);
fractal void (void);
display_fractal void (void); display_coordenadas
void (void); display_humanoide
void (void); reshape_fractal
void (int w, int h) void
reshape_coordenadas (int w, int h);
void idle ();
humanoid void ();
void cube ();
/ / used for the animation of the humanoid

/ /
torso parameters int rot_torso_x = 0; rot_torso_y
int = 0; rot_torso_z
int = 0;
/ / parameters int head
rot_cabeza_x = 0;
rot_cabeza_y int = 0;
rot_cabeza_z int = 0;

/ / parameters right arm rot_brazoder_x
int = 0; Int
rot_brazoder_y =- 60; rot_brazoder_z
int = 0;
/ / left arm parameters
rot_brazoizq_x int = 0; rot_brazoizq_y

int = 60; rot_brazoizq_z
int = 0;
/ / parameters right leg
rot_piernader_x int = 0; rot_piernader_y
int = 0; rot_piernader_z

int = 0;
/ / parameters left leg
rot_piernaizq_x int = 0;
rot_piernaizq_y int = 0; rot_piernaizq_z

int = 0;
/ / Used for the purpose of factal and window control
int aux = 1;
int flag = 0; bandera1

int = 0; Window1
int / / logical name for the first int window
ventana2 / / logical name for the second window int ventana3
/ / logical name for the third window
int xzoom = 0;
yzoom int = 0;
px1 float =- 2.5;
float =- 2165 PY1, PX2
float = 2.5;

=- 2165 PY2 float, float
PX3 = 0;
float PY3 = 2165;
float px = 0;

float py = 0;
void init (void) {

glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);}

void cube (void) {

glBegin (GL_QUADS)
glVertex3f (0.5,0.5,0.5), / / \u200b\u200bv1
glVertex3f (-0.5,0.5,0.5) / / v2
glVertex3f (-0.5, -0.5,0.5) / / v3
glVertex3f (0.5, -0.5,0.5) / / v4
glEnd ();
glBegin (GL_QUADS);
glVertex3f (-0.5,0.5, -0.5); / / v5
glVertex3f (0.5,0.5, -0.5); / / v6

glVertex3f (0.5, -0.5, -0.5); / / v7
glVertex3f (-0.5, -0.5, -0.5); / / v8
glEnd ();
glBegin (GL_QUADS);
glVertex3f (-0.5,0.5,0.5); / / v2

glVertex3f (-0.5,0.5, -0.5); / / v5
glVertex3f (-0.5, -0.5, -0.5); / / v8
glVertex3f (-0.5, -0.5,0.5); / / v3
glEnd ();
glBegin (GL_QUADS);
glVertex3f (0.5,0.5,0.5) / / v1
glVertex3f (0.5, -0.5,0.5) / / v4
glVertex3f (0.5, -0.5, -0.5); / / v7
glVertex3f (0.5,0.5, -0.5); / / v6
glEnd ();
glBegin (GL_QUADS);
glVertex3f (- 0.5,0.5, -0.5); / / v5
glVertex3f (-0.5,0.5,0.5); / / v2
glVertex3f (0.5,0.5,0.5) / / v1
glVertex3f (0.5,0.5 , -0.5); / / v6
glEnd ();
glBegin (GL_QUADS)
glVertex3f (0.5, -0.5, -0.5); / / v7
glVertex3f (-0.5, -0.5, -0.5); / / v8
glVertex3f (-0.5, -0.5,0.5) / / v3
glVertex3f (0.5, -0.5,0.5) / / v4
glEnd ();}

void humanoid ( ) {


/ * Build the torso of the humanoid * / glPushMatrix ();//
parent keeps a stack
glTranslatef (0.0,2.0,0.0) / / serves for translation
glScalef (1.7, 4.0, 1.0), / / \u200b\u200bused to climb
glRotatef (rot_torso_x, 1.0,0.0,0.0) glRotatef
(rot_torso_y, 0.0,1.0,0.0);
glRotatef (rot_torso_z, 0.0,0.0,1.0);
/ / glutWireCube (1.0);
cube ();
/ * built the head * /
glPushMatrix ();
glScalef (0.5,0.333,1.5)
glTranslatef (0.0,2.0,0.0) glRotatef
(rot_cabeza_x, 1.0,0.0,0.0);
glRotatef (rot_cabeza_y, 0.0,1.0,0.0) glRotatef
(rot_cabeza_z, 0.0,0.0,1.0);
glutWireCube (1.0);
glPopMatrix ();
/ * Build the right arm * /
glPushMatrix ();
glScalef (1.0,0.1666,1.0)
glTranslatef (1.0,2.5,0.0) glRotatef
(rot_brazoder_x, 1.0,0.0,0.0);
glRotatef (rot_brazoder_y, 0.0,1.0,0.0) glRotatef
(rot_brazoder_z, 0.0,0.0,1.0);
glutWireCube (1.0);
/ * Build the right forearm * /
glPushMatrix ();
glScalef (1.0,1.3,1.3);
glTranslatef (1.0,0.0,0.0);
/ / glutWireCube (1.0);
cube ();
/ * built the right * /
glPushMatrix ();
glScalef (0.25,0.5,1.0)
glTranslatef (2.5,0.0,0.0);
glutWireCube (1.0);
glPopMatrix ();
glPopMatrix ();
glPopMatrix ();/* up here is the full right arm * /
/ * Build the left arm * /
glPushMatrix ();
glScalef (1.0,0.1666,1.0)
glTranslatef (-1.0,2.5,0.0)
glRotatef (rot_brazoizq_x, 1.0,0.0,0.0) glRotatef
(rot_brazoizq_y, 0.0,1.0,0.0) glRotatef
(rot_brazoizq_z, 0.0,0.0,1.0);
glutWireCube (1.0);
/ * Build the left forearm * /
glPushMatrix ();
glScalef (1.0,1.3,1.3);
glTranslatef (-1.0,0.0,0.0) ;
/ / glutWireCube (1.0);
cube ();
/ * left hand constructed * /
glPushMatrix ();
glScalef (0.25,0.5,1.0)
glTranslatef (-2.5,0.0,0.0)
glutWireCube (1.0);
glPopMatrix ();
glPopMatrix ();
here glPopMatrix ();// to full left arm
/ * Build the right thigh * /
glPushMatrix ();
glScalef (0.3333,0.6,1.0)
glTranslatef (1.0, -1.125,0.0)
glRotatef (rot_piernader_x, 1.0,0.0,0.0) glRotatef
(rot_piernader_y , 0.0,1.0,0.0) glRotatef
(rot_piernader_z, 0.0,0.0,1.0);
glutWireCube (1.0);
/ * right calf constructed * /
glPushMatrix ();
glScalef (1.5,1.0,1.0);
glTranslatef (0.0, -1.0,0.0) ;
/ / glutWireCube (1.0);
cube ();
/ * RF * /
glPushMatrix ();
glScalef (1.5,0.25,1.0) glTranslatef
(0.1555, -2.5,0.0);
glutWireCube (1.0);
glPopMatrix ();
glPopMatrix ();
glPopMatrix ();// up here the whole right leg
/ * Build the left thigh * /
glPushMatrix ();
glScalef (0.3333,0.6,1.0)
glTranslatef (-1.0, -1.125,0.0)
glRotatef (rot_piernaizq_x, 1.0,0.0,0.0) glRotatef
( rot_piernaizq_y, 0.0,1.0,0.0) glRotatef
(rot_piernaizq_z, 0.0,0.0,1.0);
glutWireCube (1.0);
/ * left calf constructed * /
glPushMatrix ();
glScalef (1.5,1.0,1.0);
glTranslatef (0.0, -1.0,0.0) ;
/ / glutWireCube (1.0);
cube ();
/ * Build the left foot * /
glPushMatrix ();
glScalef (1.5,0.25,1.0)
glTranslatef (-0.1555, -2.5,0.0);
glutWireCube (1.0);
glPopMatrix ();
glPopMatrix ();
glPopMatrix ();/* left leg completes * / glPopMatrix
();/* full torso * /
glFlush ();}

fractal void (void) {

int i = 0;
px = rand ()% 20;
py = rand () % 20;
px = px/10;
py = py/10;
/ * Points of the triangle * /
glBegin (GL_POINTS)
glVertex2f (PX1, PY1);
glEnd ();
glBegin (GL_POINTS)
glVertex2f (PX2, PY2)
glEnd ();
glBegin (GL_POINTS)
glVertex2f (PX3, PY3);

glEnd ();
glBegin (GL_POINTS)
glVertex2f (px, py);
glEnd ();
/ * points to calculate * /
do
{ to
= rand ()% 3;
if (to == 0) {

px = (PX1 + px) / 2;
py = (py + PY1) / 2;}

if (to == 1) {

px = (px + PX2) / 2;
py = (py + PY2) / 2;

} if (to == 2) {

px = (px + PX3) / 2;
py = (PY3 + py) / 2;
}
glBegin (GL_POINTS)
glVertex2f (px, py);
glEnd ();
i + +;
} while ( i}

display_fractal void (void) {

glColor3f (1.0, 1.0, 0.0);
glLoadIdentity ();
gluLookAt (0.0,0.0,5.0, 0.0, 0.0 , 0.0, 0.0, 1.0, 0.0);
glClear (GL_COLOR_BUFFER_BIT);
fractal ();
glFlush();
}
void display_coordenadas(void)
{
glColor3f (0.0, 1.0, 1.0);
glLoadIdentity ();
gluLookAt (0.0,0.0,15.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glClear (GL_COLOR_BUFFER_BIT); <>
glPushMatrix();
glScalef(4,4,1);
fractal();
glPopMatrix();
glFlush();
}
void display_humanoide(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 0.0);
glLoadIdentity (); /* clear the matrix */
gluLookAt (0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
humanoide();
glFlush ();
}
void reshape_fractal (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}
void reshape_coordenadas (int w, int h)
{
glViewport (xzoom, yzoom, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}
/* ARGSUSED1 */
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
default:
break;
}
}
void mouse(int button, int state, int x, int y)
{
if (state == GLUT_DOWN)
{
if ((glutGetWindow() == ventana1) &&amp; button == GLUT_LEFT_BUTTON)

{
xzoom = 255 - x;
yzoom = y - 255;
printf ("% d,% d \\ n", x, y);
glutInitWindowSize (500, 500);
glutInitWindowPosition (700, 50);
ventana2 glutCreateWindow = ("specific coordinates");
init ();
glutDisplayFunc (display_coordenadas);
glutReshapeFunc (reshape_coordenadas);
glutSetWindow (ventana2) ;

glutIdleFunc (NULL);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
}
else if ((glutGetWindow() == ventana2) &&amp; (button == GLUT_RIGHT_BUTTON)){
glutIdleFunc(NULL);
glutDestroyWindow(ventana2);
}
}
if (state == GLUT_UP)
{
if ((glutGetWindow() == ventana1) &&amp; button == GLUT_RIGHT_BUTTON)
{
printf("%d, %d \n",x, y);
glutInitWindowSize (800, 800);
glutInitWindowPosition (450, 0);
ventana3 = glutCreateWindow ("Humanoide");
init();
glutDisplayFunc(display_humanoide);
glutReshapeFunc(reshape_fractal);
glutSetWindow(ventana3);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutIdleFunc(idle);
}
else if ((glutGetWindow() == ventana3) &&amp; (button == GLUT_RIGHT_BUTTON)){
glutIdleFunc(NULL);
glutDestroyWindow(ventana3);
//glutSetWindow(win1);
}
}
}
void idle()
{
int i,j;
for(j=0;j
{
display_humanoide();
rot_brazoder_y = ((rot_brazoizq_y + 1)*-1)%65;
rot_brazoizq_y = (rot_brazoizq_y + 1)%65;
for (i=0;i
{
}
}
for(j=0;j
{
display_humanoide();
rot_brazoder_y = ((rot_brazoizq_y - 1)*-1)%65;


rot_brazoizq_y = (rot_brazoizq_y - 1)%65;
for (i=0;i

{}} <60;j++)



} int main (int argc, char ** argv) {
<10000000;i++)
/ / code to the first window that displays the fractal
glutInit (& argc, argv);
glutInitDisplayMode (GLUT_SINGLE
init (); <60;j++)
glutDisplayFunc (display_fractal)
glutReshapeFunc (reshape_fractal)
glutIdleFunc (NULL);
glutKeyboardFunc (keyboard);
glutMouseFunc (mouse); <10000000;i++)
glutMainLoop ();
return 0;}



Tuesday, April 17, 2007

Sed Rate Crp Slightly Elevated



/ / practica6 c) draw random shapes in random colors
/ / Christian Durán Jorge Lara

# include # include void timer
(int value); void init (void);
void display(void); void reshape (int w, int h); void mouse(int button, int state, int x, int y);
void timer(int value); void idle();
int opcion=0; void init(void)
{ glClearColor (0.0, 0.0, 0.0, 0.0); glClear (GL_COLOR_BUFFER_BIT);
glShadeModel (GL_FLAT); }
void display(void) { float a,b,c,x,y,ancho,alto;
int i; //glClear (GL_COLOR_BUFFER_BIT);
a=rand()%10; a=a/10; b=rand()%10;
b=b/10; c=rand()%10; c=c/10;
glColor3f (a, b, c); glLoadIdentity ();
gluLookAt (2.0,0.0,6.0,2.0,0.0, 0.0, 0.0, 5, 0.0); //glBegin(GL_TRIANGLES);
glPushMatrix(); glTranslatef(-0.5,-2.3,0.0); switch(opcion)
{ case 0: glBegin(GL_LINE_LOOP);
for (i=0;i glVertex3f(rand()%6,rand()%6,1); glEnd();
break; case 1: glBegin(GL_LINE_LOOP);
for (i=0;i glVertex3f(rand()%6,rand()%6,1); glEnd(); glBegin(GL_LINE_LOOP);
x = rand ()% 6;
y = rand ()% 6;
width = rand ()% 6; height = rand ()% 6;
glVertex3f (x, y, 1);
glVertex3f (width , y, 1);
glVertex3f (width, height, 1);
glVertex3f (x, height, 1);
glEnd ();

break;

default:
break;}

glPopMatrix ();
glFlush ();}



void mouse (int button, int state, int x, int y) {

if (button == GLUT_LEFT_BUTTON)

{if (state == GLUT_DOWN)

{option + +;
if (option == 3)
option = 0;
}

}
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}

void idle()
{
int j;

for(j=0;j
display();
<2;i++)
}

void timer(int value)
{
int j;
<3;i++)
glutTimerFunc(5000,timer,1);
glClear (GL_COLOR_BUFFER_BIT);

for(j=0;j
display();
}

int main (int argc, char ** argv) {

glutInit (& argc, argv);
glutInitDisplayMode (GLUT_SINGLE and

knot vector. The curves and NURBS surfaces are generalizations of B-strip and Bezier curves and surfaces, the primary difference is the loading of the control points which makes NURBS curves rational

(the B-strip non-rational are a special case of rational B-strip). While the NURBS curves are developed in only one direction parametric, usually called
s
or
or
, NURBS surfaces are developed in two parametric directions, called s
and


or
t u v
and

.








Evaluating a NURBS curve at various parameter values, the curve can be represented in two or three-dimensional Cartesian space. Also evaluating a NURBS surface at various values \u200b\u200bof the two parameters, the surface can be represented in Cartesian space.

curves and NURBS surfaces are useful for a number of reasons:

tune
are invariant under transformations as well as its perspectives.

offer a common mathematical form for standard analytical shapes (eg, conics) and free-form shape.

provide the flexibility to design a large variety of ways.

reduce consumption memory when the store is (compared to simpler methods).

can be evaluated reasonably fast by numerically stable and accurate algorithms.

are generalizations of B-strips and non-rational curves and surfaces non-rational and rational Bezier.

<30000000;j++){}
The knot vector is a sequence of parameter values \u200b\u200bthat determine where and how the control points affect the NURBS curve. The number of knots is always equal to the number of control points of the curve degree plus one. Necessary only for internal calculations, knots are not usually helpful to users of modeling software. For So many uses that model nodes are not editable or even visible. More recent versions of NURBS software (eg, Maya and Autodesk 3D rhinoceros) allow interactive editing of knot positions, but it is significantly less intuitive editing of control points.

The knot vector values \u200b\u200bmust be in ascending order, so (0, 0, 1, 2, 3) is valid while (0, 0, 2, 1, 3) is not. Individual values \u200b\u200bare not significant knot themselves, only the ratios of the difference between the knot value the subject. Therefore, the knot vectors (0, 0, 1, 2, 3), (0, 0, 2, 4, 6) and (1, 1, 2, 3, 4) all produce the same curve. Also, do not allow any value of the node having so many duplicates that happens more times than the degree of the curve. For the first-degree NURBS, each knot is paired with a control point.



The order of a NURBS curve defines the number of checkpoints coming that influence any given control point. The curve is represented mathematically by a polynomial of degree one less than the order of the curve. Therefore, the second-order curves (which are represented by linear polynomials) are called linear curves, the third-order curves are called quadratic curves, and the fourth-order curves are called cubic curves. The number of control points must be greater than or equal to the order of the curve.

In practice, cubic curves are the ones used most commonly. The curves of fifth-and sixth-order are sometimes useful, especially for derivatives, but curves of higher orders are almost never used because lead to internal numerical problems and tend to require disproportionately large calculation times.

While non-rational curves are not sufficient to represent a circle, these are the NURBS control points for a uniformed the circle in the xy plane
<30000000;j++){}
:










x y z






weight

1 0 0 1 1 1 0 ? 2 / 2

0 1 0

?

1 1 0

  • ? 2 / 2
  • ?
  • 1 0 0
  • 1

? 1

? 1 0

? 2 / 2

0

? 1 0 1
a ? A 0 ? 2 / 2
1 0 0 a