C和OpenGL结合生成钻石图形的解决方案
说明:程序使用了OpenGL,因此用VS编译时,就要搭建使用OpenGL的环境。具体方法如下,
1、下载http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip并解压;
2、在vs2008中,把解压文件夹里的glut.h复制到 vs2008安装目录\VC\include\文件夹中,把glut.lib和glut32.lib复制到 vs2008安装目录\VC\lib\文件夹中,把glut.dll和glut32.dll复制到 系统盘\Windows\System32\文件夹中
原代码为
#include "stdafx.h"
#include <glut.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#define pi 3.14159265
int n=0;
int R=200,CX=250,CY=250;
int *point;
void initGraph(void);
void drawCircle(int cx, int cy, int r);
void display(void);
void drawLine(int x1, int y1, int x2, int y2);
void main(int argc, char **argv){
float w,wi;
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB) ;
glutInitWindowSize(500,500);
glutCreateWindow("n阶钻石图案");
initGraph();
printf("请输入钻石图案行数(最小值为3):");
scanf("%u",&n);
if(n>2){
point=(int*)malloc(sizeof(int)*n*2);//申请存储空间
w=2*pi/n;
wi=w/2;
for(int i=0;i<2*n;i+=2){
point[i]=(int)(CX+R*cos(wi));
point[i+1]=(int)(CY+R*sin(wi));
wi+=w;
}
}
glutDisplayFunc(display);
glutMainLoop();
if(point
相关文档:
进程I/O函数,与pclose函数一起使用。
表头文件
#include <stdio.h>
函数定义
FILE * popen
( const char * command
, const char * type
);
int pclose
( FILE * stream
);
函数说明
popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一 ......
网络搜集-资料
格式化输入输出函数
Turbo C2.0 标准库提供的两个控制台格式化输入、 输出函数:printf( ) 、scanf()。
printf()函数用来向标准输出设备(屏幕)写数据;
scanf() 函数用来从标准输入设备(键 ......
题记:
所有的完美,都是在崩溃的一刻达到的!
我一直回避程序的内存管理,因为爱之愈深,恨之愈烈。但是,还是由很多的朋友一直在体这方面的问题,所以就索性把它坦白了,也许对你我都是一件好事情。
首先,需要搞清楚:变量的类型和它的存储类别是两个概念。
数据类型和内存管理没有直接的关系。
一个由c/C++编 ......
这是入门篇中提到的那两题:
int * (* (*fp1) (int) ) [10];
int *( *( *arr[5])())();
解答如下
1.int * (* (*fp1) (int) ) [10];
从外往内进行分析
a.typedef P=(* (*fp1) (int) ),那么原声明改写为 int*P[10],这是一个有10个元素的数组,每个元素都是一个指向整型数的指针
b.typedef Q=(*fp1),那么P改写为 *Q( ......
(本文源自http://www.weste.net/2006/2-20/13432127659.html )
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中 ......