> Online tutorial : 3d transformation program in c
Showing posts with label 3d transformation program in c. Show all posts
Showing posts with label 3d transformation program in c. Show all posts

print without using semicolon

    #include "conio.h"
    #include "stdio.h"
    void main()
    {
    if(printf("hello")&&getch())
    }

multiplication tables using c

0*10 Multiplication Table C code.



Sample Code

    #include<stdio.h>
    #include<conio.h>
    main()
    {
    int row,column;
    clrscr();
    puts("tttMULTIPLICATION TABLE");
    puts("nttt********************");
    for(row=1;row<=10;row++)
    {
    printf("nn");
    for(column=1;column<=10;column++)
    printf("%6d", row*column);
    }
    getch();
    }

single linked list program in c


Single linked list inplementation using different functions

1. Insert a number at the beginning
2. Insert a number at last
3. Insert a number at a particular location in list
4. Print the elements in the list
5. Print the total number of elements in the list
6. Delete a node in the linked list
7. Reverse a linked list
8. Get out of linked list



Sample Code

    /* PROGRAM IMPLEMENTATION OF SINGLE LINKED LIST */
    
    #include"stdio.h"
    //#define NULL 0
    /* STRUCTURE CONTANING A DATA PART AND A LINK PART */
    
    struct node
    {
    int data;
    struct node *next;
    }*p;
    
    /* P IS A GLOBAL POINTER CONTAINS THE ADRESS OF THE FIRST NODE IN
    LIST
    */
    
    /*THIS FUNCTION DELETES A NODE */
    
    delnode(int num)
    {
    struct node *temp, *m;
    temp=p;
    while(temp!=NULL)
    {
    if(temp->data==num)
    {
    if(temp==p)
    {
    p=temp->next;
    free(temp);
    return;
    }
    else
    {
    m->next=temp->next;
    free(temp);
    return;
    }
    }else
    {
    m=temp;
    temp= temp->next;
    }
    
    }
    printf("    ELEMENT %d NOT FOUND    ", num);
    }/*THIS FUNCTION ADDS A NODE AT THE LAST OF LINKED LIST */
    
    append( int num )
    {
    struct node *temp,*r;
    /* CREATING A NODE AND ASSIGNING A VALUE TO IT */
    
    temp= (struct node *)malloc(sizeof(struct node));
    temp->data=num;
    r=(struct node *)p;
    
    if (p == NULL) /* IF LIST IS EMPTY CREATE FIRST NODE */
    {
    p=temp;
    p->next =NULL;
    }
    else
    { /* GO TO LAST AND ADD*/
    
    while( r->next != NULL)
    r=r->next;
    r->next =temp;
    r=temp;
    r->next=NULL;
    }
    }/* ADD A NEW NODE AT BEGINNING */
    
    addbeg( int num )
    {
    /* CREATING A NODE AND INSERTING VALUE TO IT */
    
    struct node *temp;
    temp=(struct node *)malloc(sizeof(struct node));
    temp->data=num;
    
    /* IF LIST IS NULL ADD AT BEGINNING */
    if ( p== NULL)
    {
    p=temp;
    p->next=NULL;
    }
    
    else
    {
    temp->next=p;
    p=temp;
    }
    }
    
    /* ADD A NEW NODE AFTER A SPECIFIED NO OF NODES */
    
    addafter(int num, int loc)
    {
    int i;
    struct node *temp,*t,*r;
    r=p;         /* here r stores the first location */
    if(loc > count()+1 || loc <= 0)
    {
    printf("    insertion is not possible :    ");
    return;
    }
    if (loc == 1)
/* if list is null then add at beginning */
    {
    addbeg(num);
    return;
    }
    else
    {
    for(i=1;i<loc;i++)
    {
    t=r;
/* t will be holding previous value */
    r=r->next;
    }
    temp=(struct node *)malloc(sizeof(struct node));
    temp->data=num;
    t->next=temp;
    t=temp;
    t->next=r;
    return;
    }
    }/* THIS FUNCTION DISPLAYS THE CONTENTS OF THE LINKED LIST */
    
    display(struct node *r)
    {
    r=p;
    if(r==NULL)
    {
    printf("NO ELEMENT IN THE LIST :");
    return;
    }
    /* traverse the entire linked list */
    while(r!=NULL)
    {
    printf(" -> %d ",r->data);
    r=r->next;
    }
    printf("");
    }
    //THIS FUNCTION COUNTS THE NUMBER OF ELEMENTS IN THE LIST
    count()
    {
    struct node *n;
    int c=0;
    n=p;
    while(n!=NULL)
    {
    n=n->next;
    c++;
    }
    return(c);
    }
    //THIS FUNCTION REVERSES A LINKED LIST
    reverse(struct node *q)
    {
    struct node *m, *n,*l,*s;
    m=q;
    n=NULL;
    while(m!=NULL)
    {
    s=n;
    n=m;
    m=m->next;
    n->next=s;
    }
    p=n;
    }
    
    
    /* THIS IS THE MAIN PROGRAM */
    
    main()
    {
    int i;
    p=NULL;
    while(1) /* this is an indefinite loop */
    {
    printf("    1.INSERT A NUMBER AT BEGINNING;<BR>);
    printf("    2.INSERT A NUMBER AT LAST:<BR>);
    printf("    3.INSERT A NUMBER AT A PARTICULAR LOCATION INlIST:<BR>);
    printf("    4.PRINT THE ELEMENTS IN THE LIST :<BR>);
    printf("    5.PRINT THE NUMBER OF ELEMENTS IN THE LIST <BR>);
    printf("    6.DELETE A NODE IN THE LINKED LIST:<BR>);
    printf("    7.REVERSE A LINKED LIST :<BR>);
    printf("    8.GET OUT OF LINKED LIST (BYEE BYEE):<BR>);
    printf("    PLEASE, ENTER THE NUMBER:");
    
    scanf("%d",&i);
/* ENTER A VALUE FOR SWITCH */
    
    switch(i)
    {
    case 1:
    {
    int num;
    printf("
    PLEASE ENTER THE NUMBER :-");
    scanf("%d",&num);
    addbeg(num);
    break;
    }
    case 2:
    {
    int num;
    printf("
    PLEASE ENTER THE NUMBER :-");
    scanf("%d",&num);
    append(num);
    break;
    }
    
    case 3:
    {
    int num, loc,k;
    printf("
    PLEASE ENTER THE NUMBER :-");
    scanf("%d",&num);
    printf("
    PLEASE ENTER THE LOCATION NUMBER :-");
    scanf("%d",&loc);
    addafter(num,loc);
    break;
    }
case 4:
    {
    struct node *n;
    printf("
    
    THE ELEMENTS IN THE LIST ARE : <BR>);
    display(n);
    break;
    }
    
    case 5:
    {
    struct node *n;
    display(n);
    printf(" TOTAL NO OF ELEMENTS IN THE LSIT ARE %d",count());
    break;
    }
case 6:
    {
    int num;
    printf("
    PLEASE ENTER A NUMBER FROM THE LIST :");
    scanf("%d",&num);
    delnode(num);
    break;
    }
    case 7:
    {
    reverse(p);
    display(p);
    break;
    }
    case 8:
    {
    exit();
    }
    }/* end if switch */
    }/* end of while */
    }/* end of main */

3d transformation program in c




3D Transformation

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
int maxx,maxy,midx,midy;
void axis()
{
getch();
cleardevice();
line(midx,0,midx,maxy);
line(0,midy,maxx,midy);
}
void main()
{
int gd,gm,x,y,z,o,x1,x2,y1,y2;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"e:\tc\bgi");

setfillstyle(0,getmaxcolor());
maxx=getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;

axis();

bar3d(midx+50,midy-100,midx+60,midy-90,5,1);

printf("Enter translation factor <BR>);
scanf("%d%d",&x,&y);
axis();
printf("After translation:<BR>);
bar3d(midx+x+50,midy-(y+100),midx+x+60,midy-(y+90),5,1);

axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("Enter scaling factors<BR>);
scanf("%d%d%d", &x,&y,&z);

axis();
printf("After scaling<BR>);
bar3d(midx+(x*50),midy-(y*100),midx+(x*60),midy-(y*90),5*z,1);
axis();


bar3d(midx+50,midy-100,midx+60,midy-90,5,1);

printf("Enter rotating angle<BR> );
scanf("%d",&o);
 x1=50*cos(o*3.14/180)-100*sin(o*3.14/180);
 y1=50*sin(o*3.14/180)+100*cos(o*3.14/180);
 x2=60*cos(o*3.14/180)-90*sin(o*3.14/180);
 y2=60*sin(o*3.14/180)+90*cos(o*3.14/180);

axis();
printf("After rotation about z axis<BR> );
bar3d(midx+x1,midy-y1,midx+x2,midy-y2,5,1);
axis();

printf("After rotation  about x axis <BR>);
bar3d(midx+50,midy-x1,midx+60,midy-x2,5,1);

axis();
printf("After rotation about yaxis<BR>);
bar3d(midx+x1,midy-100,midx+x2,midy-90,5,1);
getch();
closegraph();
}