文档库 最新最全的文档下载
当前位置:文档库 › MinGW 下配置Opengl图形库

MinGW 下配置Opengl图形库

MinGW 下配置Opengl图形库
MinGW 下配置Opengl图形库

计算机图形学OpenGL中绘制太阳_地球_月亮的运动模型源代码

#include static int day = 148; // day的变化:从0到359 void myDisplay(void) { glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(75, 1, 1, 400000000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1); // 红色的“太阳” glColor3f(1.0, 0.0, 0.0); glutSolidSphere(69600000, 100, 100); // 蓝色的“地球” glColor3f(0.0, 0.0, 1.0); glRotatef(day/360.0*360.0, 0.0, 0.0, -1.0); glTranslatef(150000000, 0.0, 0.0); glutSolidSphere(15945000, 100, 100); // 黄色的“月亮” glColor3f(1.0, 1.0, 0.0); glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0, 0.0, -1.0); glTranslatef(38000000, 0.0, 0.0); glutSolidSphere(4345000, 100, 100); glFlush(); glutSwapBuffers(); } void myIdle(void) { ++day; if( day >= 360 ) day = 0; myDisplay(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowPosition(100, 100); glutInitWindowSize(450, 450);

VS2010下配置Openmesh+openGL

VS2010下配置Openmesh+openGL 一.配置OpenGL 1首先,下载glut.rar文件,这个网上搜一下都能够找到,亦可以从opengl官网下载,https://www.wendangku.net/doc/e1276325.html,/resources/libraries/glut/glutdlls37beta.zip。 2.解压后可以得到5个文件:glut.h、glut.dll、glut.lib、glut32.lib、glut32.dll。然后, ○1把glut.h文件放在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl文件夹下面; ○2把glut.lib、glut32.lib两个文件放在静态函数库所在的文件夹中,也就是说这两个文件要放到自己的VS2010安装目录下的VC\lib文件中。我的vs2010安装目录是E:\vs2010\VC\lib; ○3最后把glut.dll、glut32.dll文件放在C:\windows\system32文件夹下面. 三步做完openGL的文件配置就完成了。 二.配置Openmesh 1. 在网站上下载了 OpenMesh- 2.0-RC4(这个谷歌下,网上很多,最好下载最新版本的)。 2.安装openmesh后,openmesh安装目录下的lib文件夹里面会有两个库文件 OpenMeshCore.lib 和OpenMeshTools.lib。 3.为了不设置依赖的编译目录,将这两个文件放到VS的库文件里E:\VS2010\VC\lib中。 4.打开VS2010,新建一个工程,命名如test1,然后设置test1工程的依赖项,工程属性->连接器->输入-》附加依赖项-》加入如上两个lib就可以了。在这里要说明一下,如果从VS2010的工具—属性里面设置附加依赖属性是不行的,所以我们要自己建一个工程,然后设置这个工程的附加依赖属性,设置的地方有两处,如下: ○1项目—test1属性—VC++目录 主要设置的是包含目录和库目录,文件路径设置如图,lib和include文件夹都在自己的openmesh安装目录下。 ○2项目—test1属性—链接器—输入 将openmesh安装目录下lib文件中的这两个文件(如图)的名字复制粘贴到这里来就可以了,至此openmesh文件配置完成。

研究生计算机图形学课程室内场景OpenGL--实验报告Word版

《高级计算机图形学》实验报告 姓名:学号:班级: 【实验报告要求】 实验名称:高级计算机图形学室内场景 实验目的:掌握使用OpenGL生成真实感复杂对象的方法,进一步熟练掌握构造实体几何表示法、扫描表示法、八叉树法、BSP树法等建模方法。 实验要求:要求利用OpenGL生成一个真实感的复杂对象及其周围场景,并显示观测点变化时的几何变换,要具备在一个纹理复杂的场景中漫游功能。要求使用到光线跟踪算法、 纹理映射技术以及实时绘制技术。 一、实验效果图 图1:正面效果图

图2:背面效果图 图4:背面效果图

图4:室内场景细节效果图 图5:场景角度转换效果图

二、源文件数据代码: 共6个文件,其实现代码如下: 1、DlgAbout.cpp #include "StdAfx.h" #include "DlgAbout.h" CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() 2、FormCommandView.cpp #include "stdafx.h" #include "Tool.h" #include "MainFrm.h" #include "FormCommandView.h" #include "ToolDoc.h" #include "RenderView.h" // Download by https://www.wendangku.net/doc/e1276325.html, #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // CFormCommandView IMPLEMENT_DYNCREATE(CFormCommandView, CFormView) CFormCommandView::CFormCommandView() : CFormView(CFormCommandView::IDD) { //{{AFX_DATA_INIT(CFormCommandView)

计算机图形学真实图形

#include #include /* Initialize material property, light source, lighting model, * and depth buffer. */ void init(void) { GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat mat_shininess[] = { 50.0 }; GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; GLfloat lightPos[]={0.0f,0.0f,75.0f,1.0f}; GLfloat ambientLight[]={0.0f,0.0f,75.0f,1.0f}; GLfloat specular[]={0.0f,0.0f,75.0f,1.0f}; GLfloat specref[]={0.0f,0.0f,75.0f,1.0f}; GLfloat spotDir[]={0.0f,0.0f,75.0f,1.0f}; glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_SMOOTH);//设置阴影模型 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);//镜面光分量强度glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);//镜面光反射指数glLightfv(GL_LIGHT0, GL_POSITION, light_position);//设置光源的位置 glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight); glLightfv(GL_LIGHT1,GL_DIFFUSE,ambientLight); glLightfv(GL_LIGHT1,GL_SPECULAR,specular); glLightfv(GL_LIGHT1,GL_POSITION,lightPos); glLightf(GL_LIGHT1,GL_SPOT_CUTOFF,50.0f); glEnable(GL_LIGHT1); glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE); glMaterialfv(GL_FRONT,GL_SPECULAR,specref); glMateriali(GL_FRONT,GL_SHININESS,128); glEnable(GL_LIGHTING);//启动光照 glEnable(GL_LIGHT0);//激活光源 glEnable(GL_LIGHT1);//激活光源 glEnable(GL_DEPTH_TEST); } /* 调用glut函数绘制一个球*/ void display(void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

计算机图形学 实验 利用OpenGL实现图形的平移、旋转、缩放

XXXXXXXX大学(计算机图形学)实验报告 实验名称利用OpenGL实现图形的平移、旋转、缩放 实验时间年月日 专业姓名学号 预习操作座位号 教师签名总评 一、实验目的: 1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想; 2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤; 二、实验原理: 在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能: glRotatef(theta, vx, vy, vz); glTranslatef(dx, dy, dz); glScalef(sx,sy,sz); 三、实验内容: // 1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "glut.h" #include "math.h" void display() { glClear( GL_COLOR_BUFFER_BIT); // Clear the frame buffer glColor3f( 0.0, 1.0, 1.0); // Set current color to green glBegin( GL_POLYGON); // Draw the triangle glV ertex2f( 0.0, -0.2); glV ertex2f( 0.2, 0.0); glV ertex2f( 0.0, 0.0); glEnd(); glFlush(); } void dsp()

图形学实验一 三维分形(附源代码)

实验报告 实验名称:三维分形算法 姓名:陈怡东 学号:09008406 程序使用说明: 程序打开后会呈现出3次分形后的四面体,因为考虑到观察效果的清晰所以就用了3次分形作为演示。 与用户的交互: 1键盘交互:分别按下键盘上的数字键1,2,3,4可以分别改变四面体的4个面的颜色。 按下字母c(不区别大小写)可以改变视图函数,这里循环切换3种视图 函数:glOrtho,glFrustum,gluPerspective,但是改变视图函数后要窗口形状变化后才能显现出来 按下字母键q(不区别大小写)可以退出程序 2鼠标交互:打开后在绘图的区域按下鼠标左键不放便可以拖动图形的视角,这里为了展现图形的3D效果因此固定了其中一点不放,这样就可以看到3D的效果。 鼠标右击则有弹出菜单显示,其中改变颜色则是同时改变4个面的颜色,本程序中运用了8组配色方案。 改变视图函数也是上述的3种函数,这里的效果立刻显现,但是还有很多问题达不到所要的效果,希望老师能帮忙解决一下。 设计思路: 分形算法:把四面体细分成更小的四面体,先找出其6个棱的中点并连接起来,这样就在4个顶点处各有一个小的四面体,原来四面体中剩下的部分应当去掉。仿效二维的生成方法,我们对保留的四个小四面体进行迭代细分。这样细分结束后通过绘制4个三角形来绘制每一个剩下的四面体。 交互的实现:键盘交互,即通过对按键的响应写上响应函数实现对视图和颜色的改变。 鼠标交互:通过对鼠标左右按键的 实现: 该部分只做了必要的介绍,具体实现见代码(附注释) 分形算法:void tetra(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d)函数实现的是绘制四面体并且给四个面绘上不同的颜色。以区别开来,函数的实现细节见代码,有注释介绍。 void triangle3(GLfloat *a,GLfloat *b,GLfloat *c)函数用来绘制每个平面细分后的三角形。其中顶点设置为3维坐标glVertex3fv(a); void divide_tetra(GLfloat *a,GLfloat *b,GLfloat *c,GLfloat *d,int m)细分四面体的函数实现。前四个参数为传入点的坐标,最后参数m则是细分次数。先计算六个中点的坐标mid[1][j]=(a[j]+c[j])/2;3次循环则是对x,y,z三个坐标的一次计算,然后再递归调用绘制4个小四面体。 然后是显示回调函数void mydisplay3FX();这跟程序模板差不多不做过多介绍。 分形算法中必要重要的一点是隐藏面的消除。即书上2.10.3介绍的内容。对对象进行排

计算机图形学试验指导一–OpenGL基础

计算机图形学实验指导(一) –OpenGL基础 1.综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 尽管OpenGL包括渲染命令,但却独立于任何窗口系统和操作系统。因此,OpenGL并不包括用来打开窗口以及从键盘或鼠标读取事件的命令。在这里,我们应用GLUT库简化Windows窗口操作。 2.准备GLUT库 下载glut压缩包后,解压,把glut32.dll放在Windows的system32目录下,将glut32.lib 放在C:\program files\Microsoft Visual Studio\VC98\Lib目录中,将glut.h放在C:\program files\Microsoft Visual Studio\VC98\Include\GL目录中 2.在VC中新建项目 新建一个项目。 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,回车即可。VC为你创建一个工作区(WorkSpace),你的项目就放在这个工作区里。 为项目添加文件 为了使用OpenGL,我们需要在项目中加入相关的Lib文件:glut32.lib 选中菜单Project->Settings项,在link选项卡中的Object/Library modules栏中加入glut32.lib。 选择菜单File中的New选项,弹出一个分页的对话框,选中页Files中的C++sourcefile,填入文件名,钩选添加到刚才建的那个工程里,然后就可以开始编程了。 3.一个OpenGL的例子 #include //初始化OpenGL void init(void) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f);//设置背景颜色 glShadeModel(GL_FLAT);//设置明暗处理 } //主要的绘制过程 void display(void) { glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓存 glBegin(GL_LINES);//开始画直线 glColor3f(1.0f, 1.0f, 1.0f);//设置颜色为白色 glVertex2f(30.0f, 30.0f);//第一根线的两个端点 glVertex2f(200.0f, 400.0f);

计算机图形学 实验一:生成彩色立方体(含源代码)

实验一 实验目的:生成彩色立方体 实验代码://ColorCube1.java import java.applet.Applet; //可以插入html import java.awt.BorderLayout; //窗口采用BorderLayout方式布局import com.sun.j3d.utils.applet.MainFrame; //application import com.sun.j3d.utils.geometry.ColorCube;//调用生成ColorCube的Utility import com.sun.j3d.utils.geometry.Primitive; import com.sun.j3d.utils.universe.*; //观测位置的设置 import javax.media.j3d.*; //核心类 import javax.vecmath.*; //矢量计算 import com.sun.j3d.utils.behaviors.mouse.*; public class ColorCube1 extends Applet { public BranchGroup createSceneGraph() { BranchGroup objRoot=new BranchGroup(); //BranchGroup的一个对象objRoot(放置背景、灯光)BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);//有效范围 TransformGroup objTrans=new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); objRoot.addChild(objTrans); MouseRotate behavior = new MouseRotate(); behavior.setTransformGroup(objTrans); objRoot.addChild(behavior); behavior.setSchedulingBounds(bounds); MouseZoom behavior2 = new MouseZoom(); behavior2.setTransformGroup(objTrans); objRoot.addChild(behavior2); behavior2.setSchedulingBounds(bounds); MouseTranslate behavior3 = new MouseTranslate(); behavior3.setTransformGroup(objTrans); objRoot.addChild(behavior3); behavior3.setSchedulingBounds(bounds);

OpenVPNWindowsGUI客户端安装配置说明

OpenVPN Windows GU客户端安装配置说明

c o 肖 虽 懈K I W I 丄w l SMOPU 一 7VVL c o c o 1 V 卜 W 00 於 00 鋼 00 |1 W M 便 S e E S 眉 M j W :e : 皿 ;丄 食 1吴 :E j W A LU 1 < ■ 吐 魁<迸“ 寸 鋼 怒 屁<|迸 <血 冒 逅剑區堞 M W 丄:tln0SMOPU 一 AA Nd>uedo

10三、使用说明 (1) 1测试连通 (12)

概述 什么是OpenVPN VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPNE疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。 OpenVPN允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。 OpenVPF能在Linux、xBSD Mac OS X与Windows 2000/XP 上运行。 它并不是一个基于Web勺VPN软件,也不与IPsec及其他VPN软件包兼容。 我们的OpenVPF安装在CentOS系统上,使用IPsec加密,提供公司内部网络从互联网访问接口,可以通过互联网访问公司内部各种应用,为公司内部信息化建设提供技术保障。 二、安装 1. windows客户端下载地址 下载址如下,请各位同事自行下载 http://ope nvpn .se/files/i nstall_packa ges/ope nvpn-2.0.9-gui-1.0.3-in stall.e xe

计算机图形学实验_透视茶壶源代码

#include #include #include using namespace std; float fTranslate; float fRotate; float fScale=1.0f;//set inital scale value to 1.0f bool bPersp=false; bool bAnim=false; bool bWire=false; int wHeight=0; int wWidth=0; //todo //hint:some additional parameters may needed here when you operate the teapot void Draw_Leg() { glScalef(1,1,3); glutSolidCube(1.0f); //glutWireCone(1.0f); } //定义操作茶壶的操作参数 int tx=1; int ty=0; int tz=0; int tangle=90; //定义设置scale的参数 float sx=0.3f; float sy=0.3f; float sz=0.3f; void Draw_Scene() { glPushMatrix(); glTranslatef(0,0,5); glRotatef(tangle,tx,ty,tz); // glutSolidTeapot(1); glutSolidSphere(1.0f,10,10);

glPopMatrix(); glPushMatrix(); glTranslatef(0,0,3.5); glScalef(5,4,1); glutSolidCube(1.0); glPopMatrix(); //leg1 glPushMatrix(); glTranslatef(1.5,1,1.5); Draw_Leg(); glPopMatrix(); //leg2 glPushMatrix(); glTranslatef(-1.5,1,1.5); Draw_Leg(); glPopMatrix(); //leg3 glPushMatrix(); glTranslatef(1.5,-1,1.5); Draw_Leg(); glPopMatrix(); //leg4 glPushMatrix(); glTranslatef(-1.5,-1,1.5); Draw_Leg(); glPopMatrix(); } void updateView(int width,int height) { glViewport(0,0,width,height);//reset the current viewport glMatrixMode(GL_PROJECTION);//select the projection matrix glLoadIdentity();//reset the projection matrix float whRatio=(GLfloat)width/(GLfloat)height; if(bPersp) { //todo when 'p'operation ,hint:use function glupersPective } else glOrtho(-3,3,-3,3,-100,100); glMatrixMode(GL_MODELVIEW);//select the modelview matrix

vp的安装及配置

MultiGen-Paradigm公司的Vega Prime是专门应用于实时视景仿真、声音仿真和虚拟现实等领域的渲染软件环境。它是一个跨平台实时工具。它构建在VSG(Vega Scene Graph)框架之上,是VSG的扩展API,包括了一个图形用户界面Lynx和一系列可调用的、用c++实现的库文件、头文件。 Vega Prime在不同层次上进行了抽象,并根据功能不同开发了不同的模块,每个应用程序由多个模块组合而成。它们都由VSG提供底层的支持。VSG分为三个部分:(1)vsgu(Utlity library),提供内存分配等功能;(2)vsgr(Rendenring library),底层的图形库抽象,比如OpenGl或D3D;(3)vsgs(Scene graph library)。在内核中,Vega Prime使用vsgs,vsgs使用vsgr,它们都使用vsgu。 现在的Vega Prime,功能上没有任何指得炫耀的地方,跨平台性也没有很好,如果但论功能,效率,跨平台性,估计比不过其他软件,但是Vega Prime背后有实力强大的MP公司,多年的积累使得高级功能的增添相当简单,很多都只需从Vega中移植过来就行了,所以VP是较为先进的架构,光明的前途,但是尚未成熟,发展中的软件。 查看文章 vega prime 浅谈--转 2007-03-20 17:25 理解VP,不能只从VP本身来理解,如果没有理解VSG,也就不可能真正理解VP;当然OpenGL也不能一窍不通。 VSG是一种Scene Graph,与VSG相同重量级的Scene Graph比较常见的有Open Performer,Open GVS,Open Scene Graph等等。 MP公司把战略方向从Performer调整到VSG上,自然是非常明智的。第一,Performer毕竟不是自家的东西,而MP现在有实力慢慢开始另起炉灶了,VSG 是自己的,自己的东西,好处自然不用多说了;第二,Performer在架构上慢慢开始落伍了,只能支持OpenGL(OpenGL现在商业前景不明朗),C接口的API 也略显老套(并不是说C不如C++,只是老套一些),VSG我研究了一下,现在应该还不能支持DirectX,但是显然是留了余地的,我就看到了一两个常数名称中有DirectX。此外,VSG是用C++开发的,溶入了许多现代C++的即时髦又实用的特性和技术:泛型,设计模式等等,这些特性和技术,我认为是非常powerful 的。 但是,VSG也不是完美的,它还相当不成熟,有些地方不如开放源码的Open Scene Graph,比如文本显示,格式支持等,自然,与开放源码的东西相比,它不开放源码,自然也可以看作是一个缺点。VSG对中文的支持就是没有,声音的支持等于没有。还有一点,可能是我没有深究,VSG自己搞了一套泛型接口,像容器类的VUVector等等,Open Scene Graph就没有,VSG这样搞似有重床叠架之嫌

计算机图形学实验--完整版-带结果--vc++实现

计算机图形学实验报告信息学院计算机专业20081060183 周建明 综括: 利用计算机编程语言绘制图形,主要实现以下内容: (1)、中点算法生成任意斜率直线,并设置线型线宽。 (2)、中点算法生成圆 (3)、中点算法生成椭圆 (4)、扫描算法实现任意多边形填充 (5)、Cohen_Sutherland裁剪 (6)、自由曲线与曲面的绘制 (7)、二维图形变换 (8)、三视图变换 实验一、直线的生成 一、实验内容 根据提供的程序框架,修改部分代码,完成画一条直线的功能(中点画线法或者Bresenham画线法任选一),只要求实现在第一象限内的直线。 二、算法原理介绍 双击直线生成.dsw打开给定的程序,或者先启动VC++,文件(file)→打开工作空间(open workspace)。打开直线生成view.cpp,按注释改写下列函数: 1.void CMyView::OnDdaline() (此为DDA生成直线) 2.void CMyView::OnBresenhamline()(此为Bresenham画直线) 3.void CMYView::OnMidPointLine()(此为中点画线法) 三、程序源代码 1.DDA生成直线画法程序: float x,y,dx,dy,k; dx=(float)(xb-xa); dy=(float)(yb-ya); k=dy/dx; x=xa; y=ya;

if(abs(k)<1) { for (x=xa;x<=xb;x++) { pdc->SetPixel(x, int(y+0.5),COLOR); y=y+k; } } if(abs(k)>=1) { for(y=ya;y<=yb;y++) { pdc->SetPixel(int(x+0.5),y,COLOR); x=x+1/k; } } //DDA画直线结束 } 2.Bresenham画直线源程序: float b,d,xi,yi; int i; float k; k=(yb-ya)/(xb-xa); b=(ya*xb-yb*xa)/(xb-xa); if(k>0&&k<=1) for(i=0;i=0) { xi=xa+1; yi=ya; xa++; ya=ya+0.5; } if(d<0) { xi=xa+1; yi=ya+1; xa++; ya=ya+1.5; } pdc->SetPixel(xi,yi,COLOR); }

sybase系统安装及配置手册

目录 第一章Sybase 12.5.4安装配置流程 (2) 一、 Sybase 12.5.4安装步骤 (2) 二、 SYBASE数据库配置 (9) 三、 Sybase优化配置 (13) 1. 配置Adaptive Server核心参数 (13) 2. <创建数据库的脚本> (14) 第二章Sybase故障及恢复 (17) 1. 删除设备的日志段 (17) 2. 增加数据段 (17) 3. 切断日志 (18) 4. 数据库被标记为“suspect”的处理 (18) 5. Sybase移动设备文件的方法 (19) 6. 重建数据库日志 (20) 7. 在线备份和恢复 (21) 8. Sybase远程备份 (21) 9. 自动备份 (22) 10. 数据库扩容 (23) 11. Sybase无响应的处理 (23) 12. Bcp命令的使用 (24) 13. Sybase故障一般操作步骤 (24)

系统安装及配置手册 第一章Sybase 12.5.4安装配置流程 一、Sybase 12.5.4安装步骤 点击setup开始安装,通过系统自检后到如下安装向导界面,点击下图中红色标记处“下一步”: 在椭圆标记处的下拉列表内选择中华人民共和国,再在箭头处选择同意,进入下一步:

的对话框,选择是即可: 安装类型默认为典型,点击下一步:

这是一个信息展示页面,只需点击下一步: 以点击进入下一步:

这是个默认页面,点击下一步: 将红色标记处的四项自定义配置全部勾选上,点击下一步,如下图所示:

在如下页面按照图中标记做相应更改,更改完毕后点击进入下一步:

计算机图形学实验指导(含源码附报告模板)

计算机图形学实验指导 目录 实验1 直线的绘制 (2) 实验2 圆和椭圆的绘制 (4) 实验3 图形填充 (7) 实验4 二维图形几何变换 (10) 实验5 二维图形裁剪 (13) 实验6 曲线生成算法的实现 (18) 附录:实验报告模板 (20)

实验1 直线的绘制 实验目的 1、通过实验,进一步理解和掌握DDA和Bresenham算法; 2、掌握以上算法生成直线段的基本过程; 3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段的绘制。实验环境 计算机、Turbo C或其他C语言程序设计环境 实验学时 2学时,必做实验。 实验内容 用DDA算法或Besenham算法实现斜率k在0和1之间的直线段的绘制。实验步骤 1、算法、原理清晰,有详细的设计步骤; 2、依据算法、步骤或程序流程图,用C语言编写源程序; 3、编辑源程序并进行调试; 4、进行运行测试,并结合情况进行调整; 5、对运行结果进行保存与分析; 6、把源程序以文件的形式提交; 7、按格式书写实验报告。 实验代码:DDA: # include # include void DDALine(int x0,int y0,int x1,int y1,int color) { int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy);

xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { putpixel((int)(x+0.5),(int)(y+0.5),4); x+=xIncre; y+=yIncre; } } main(){ int gdriver ,gmode ; gdriver = DETECT; initgraph(&gdriver , &gmode ,"C:\\TC20\\BGI"); DDALine(0,0,35,26,4); getch ( ); closegraph ( ); } Bresenham: #include #include void BresenhamLine(int x0,int y0,int x1,int y1,int color) { int x,y,dx,dy,e; dx=x1-x0; dy=y1-y0; e=-dx;x=x0;y=y0; while(x<=x1){ putpixel(x,y,color); x++; e=e+2*dy; if(e>0){ y++; e=e-2*dx; } } } main(){ int gdriver ,gmode ; gdriver = DETECT; initgraph(&gdriver , &gmode ,"c:\\TC20\\BGI"); BresenhamLine(0, 0 , 120, 200,5 ); getch ( ); closegraph ( ); }

Ubuntu 14.04 + caffe安装配置详细指南

Ubuntu14.04+ caffe安装配置详细指南 Edit: Kevin (Q&A laichunren@https://www.wendangku.net/doc/e1276325.html,) Reference: https://www.wendangku.net/doc/e1276325.html,/shiorioxy/article/details/52652831 特别说明 网上关于caffe的安装教程非常多,但是对于每一步是否操作成功,出现了什么样的错误又该如何处理却没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后很可能失败,有的教程甚至省略了一些细节部分,让小白更不知道如何判断每一步是否操作成功,如何处理出现的错误。 作者花费了很长时间才成功地将caffe装完,期间遇到好多错误,多次重装操作系统。现在将经验写下来,一方面为了和大家分享讨论,另一方面是为了记录一下。 1.Caffe 官网地址:https://www.wendangku.net/doc/e1276325.html,/ 2.本文使用2016年9月27日下载的caffe-master版本,运行平台为:Ubuntu 14.04, CUDA8.0,cuDNN v5.1,Intel Parallel Studio XE Cluster 2015,OpenCV 3.1.0, Matlab 2014b. pycharm community,anaconda( python, numpy, scipy, matplotlib, et.al.) 版本说明: 1.Ubuntu 版本问题 Ubuntu16.04是目前最新的系统,但装完cuda8.0显卡驱动,重启系统后一直在登录界面循环而无法进入,原因是ubuntu16.04与cuda8.0不兼容。Ubuntu15.04在cuda 官网上不再提供相关驱动文件(只有ubuntu16.04和ubuntu14.04的),因此还是选择

计算机图形学_有效边表算法源代码

#include #include #include #include #define EPSILON 0.000001 //最小浮点数 //点结构体 struct Point { int x; //x坐标 int y; //y坐标 }; //线结构体 struct Line { Point high_point; //高端点 Point low_point; //低端点 int is_active; //是否为有效边,水平边(0),非水平边(1) double inverse_k; //斜率k的倒数 }; //边结点 struct EdgeNode { double x; //扫描线与边交点的x坐标(边的低端点的x坐标)int y_max; //边的高端点的y坐标ymax double inverse_k; //斜率k的倒数 EdgeNode *next; //下一个边结点的指针 }; //有效边表 struct ActiveEdgeTable { int y; //扫描线y EdgeNode *head; //边链表的头指针 }; //桶结点 typedef struct Bucket { int y; //扫描线y EdgeNode *head; //边链表的头指针

Bucket *next; //下一个桶的指针 } EdgeTable; int compare(Point p1, Point p2); Line* create_lines(Point points[], int n); Point get_lowest_point(Line lines[], int n); Point get_highest_point(Line lines[], int n); void swap(Line &l1, Line &l2); void sort(Line lines[], int n); EdgeTable* create_edge_table(Line lines[], int n); ActiveEdgeTable* init_active_table(EdgeTable *edge_table); void delete_edge(ActiveEdgeTable *active_table, int y_max); void add_edge(ActiveEdgeTable *active_table, EdgeNode edge); ActiveEdgeTable* update_active_table(ActiveEdgeTable *active_table, EdgeTable *edge_table); void DrawPolygon(Point points, int n); void DrawGrid(int x, int y); void Fill(Point points[], int n); void Initial(); void Display(); int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400, 300); glutInitWindowPosition(100, 120); glutCreateWindow("Polygon Filling"); glutDisplayFunc(Display); Initial(); glutMainLoop(); return 0; } //比较2个点的高度 int compare(Point p1, Point p2) { if (p1.y > p2.y) return 1; else if (p1.y == p2.y) return 0; return -1; }

计算机图形学 MFC VC++6.0制作的简单时钟源代码

计算机图形学MFC VC++6.0制作的简单时钟 // MFCFrame1View.cpp : implementation of the CMFCFrame1View class // #include "stdafx.h" #include "MFCFrame1.h" #include "MFCFrame1Doc.h" #include "MFCFrame1View.h" #include "PointDialog.h" #include "math.h" GLUquadricObj *objCylinder = gluNewQuadric(); #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMFCFrame1View IMPLEMENT_DYNCREATE(CMFCFrame1View, CView) BEGIN_MESSAGE_MAP(CMFCFrame1View, CView) //{{AFX_MSG_MAP(CMFCFrame1View) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_SIZE() ON_COMMAND(IDM_ZIXUAN, OnZixuan) ON_WM_TIMER() ON_COMMAND(IDM_ChangDirect, OnChangDirect) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMFCFrame1View construction/destruction CMFCFrame1View::CMFCFrame1View() {

相关文档
相关文档 最新文档