### 可计算性与数理逻辑第五版#### 核心知识点概览《可计算性与数理逻辑》(第五版)是一本在数理逻辑领域享有盛誉的经典教材,由GEORGE S. BOOLOS、JOHN P. BURGESS以及RICHARD C. JEFFREY共同编著。
该书覆盖了数理逻辑中的基础理论成果,如哥德尔不完备性定理等,同时也探讨了一系列选修主题,包括图灵的可计算性理论、拉姆齐定理等。
#### 书籍内容概述- **可计算性理论**: 介绍了图灵机的概念,探讨了什么是可计算函数,并通过图灵机模型来定义可计算性。
书中还涉及了递归函数、λ演算等概念。
- **逻辑系统**: 分析了命题逻辑和谓词逻辑的基础,讨论了形式系统的语法、语义以及证明理论。
- **哥德尔不完备性定理**: 通过形式化的方法证明了任何包含一定算术的公理系统都无法同时满足一致性和完备性。
- **递归函数的表示性**: 提供了一个新的、更简单的递归函数表示性的证明方法,这通常是学生学习过程中的一大难点。
- **其他选修主题**: 包括但不限于拉姆齐定理、集合论、模型论等内容,这些扩展了读者对数理逻辑领域的理解。
- **习题与资源**: 每章末尾都附有练习题,帮助读者巩固所学知识。
此外,本书还提供了配套网站和教师手册,进一步支持教学活动。
#### 书籍特色与评价- **可读性强**: 即使对于没有深厚数学背景的学生来说,本书也非常容易上手。
作者们通过清晰的语言和现代、优雅的证明方式,帮助读者理解经典定理。
- **全面覆盖**: 除了核心的逻辑和可计算性理论外,本书还涵盖了大量选修内容,使其成为一本内容丰富的教材。
- **实践应用**: 对于那些希望在人工智能、哲学、计算机科学等领域增强自己知识体系的人来说,本书是一个宝贵的资源。
它不仅有助于深化理论理解,还能促进这些领域的教学活动。
#### 教学与学习支持- **配套资源**: 为了辅助教学,本书提供了配套网站,其中可能包含额外的学习材料、课件及中文版资源等。
教师手册则可以帮助教师更好地组织课程内容。
- **互动交流**: 作者邀请读者留言请求课件或中文版资料,这种互动方式促进了读者与作者之间的沟通,也有助于构建一个更加活跃的学习社区。
#### 结论《可计算性与数理逻辑》(第五版)是一本非常有价值的教材,它不仅深入浅出地介绍了数理逻辑的基础知识,还拓展了学生的视野,使其能够接触到更多高级话题。
无论是作为本科生的教学用书,还是研究生的研究参考,本书都是一个不可多得的选择。
通过阅读这本书,学习者可以建立起坚实的逻辑思维基础,并为后续深入研究提供坚实的支持。
2025/6/19 9:26:54 2.23MB
1
第2章图形基础342.1笔和画刷342.1.1pen类342.1.2brush类352.2基本图形形状372.2.1点372.2.2直线和曲线372.2.3矩形、椭圆形和圆弧形402.2.4多边形422.3颜色442.4双倍缓存66第3章坐标系统和颜色变换693.1坐标系统693.2颜色变换77第二部分二维图形的基本算法第4章二维矩阵和变换824.1矩阵基础和变换824.2齐次坐标824.2.1齐次坐标中的缩放834.2.2齐次坐标中的平移834.2.3齐次坐标中的旋转844.2.4变换组合854.2.5c#中矩阵的定义864.2.6c#中的矩阵操作874.2.7c#中基本的矩阵变换894.3c#中图形对象的变换93基本变换934.4c#中的多对象变换1014.5文字变换105第5章二维线形图形1095.1序列化和反序列化及二维图形的基本框架1095.1.1c#序列化和反序列化1105.1.2二维图形的基本框架1135.2二维图形2485.2.1简单实例2485.2.2图例2785.2.3符号2895.2.4对数比例3025.2.5图形的修饰3085.3阶梯状图3165.4多y轴图318第6章特殊二维图形3276.1创建柱状图3276.1.1水平柱状图3276.1.2垂直柱状图3436.1.3图形充填柱状图3446.1.4重叠柱状图3466.2饼状图3486.3误差图3616.4股票图3676.4.1最高最低收盘价股票图3686.4.2最高最低开盘收盘价股票图3696.4.3最高最低价股票图3776.4.4k线图(阴阳烛图)3806.5面积图3896.6综合图390第三部分三维图形的相关知识及三维图形的实现第7章三维矩阵和变换3967.1三维数学概念3967.1.1操作三维对象3967.1.2数学结构3977.2三维中的基本矩阵和变换4027.2.1c#中三维点和矩阵的操作4037.2.2三维的基本变换4057.3方位角和仰角4347.4三维图形中的特殊坐标系统4397.4.1球坐标系统4407.4.2圆柱坐标系统4437.5特殊坐标中的实际应用4477.5.1球坐标示例4477.5.2双缓存463第8章三维图形4738.1三维图形基础4738.1.1point3和matrix3类4738.1.2chartstyle类4768.1.3坐标轴4968.1.4网格线4968.1.5标签4978.2三维折线图5038.3三维图形函数包5088.3.1chartstyle2d类5098.3.2point4类5158.3.3dataseries类5168.3.4chartfunctions类5218.3.5drawchart类5268.4曲面图的实现5418.4.1网格图5418.4.2幕布网格图5488.4.3瀑布网格图5518.4.4曲面图5538.5x-y平面色彩图5598.6轮廓图5648.6.1轮廓图的算法5648.6.2轮廓图的实现5648.7组合图5698.7.1三维体系中的x-y色彩图5708.7.2三维体系中的轮廓图5718.7.3网格-轮廓组合图5758.7.4曲面-轮廓组合图5768.7.5填充曲面-轮廓组合图5768.8三维柱状图577实现柱状图5778.9切片图591切片图的实现591第四部分c#中应用微软office的excel实现各种二维及三维图形第9章应用程序中的excel图表6009.1excel和c#间的互操作6009.2c#应用程序中的excel图表示例6029.2.1excel图表对象模型6029.2.2创建独立的excel图表6049.2.3创建嵌入式excel图表
2025/6/18 10:39:41 22.07MB C# 2D 3D 图形
1
在计算机视觉领域,图像配准是一项关键任务,它涉及到将多张图像对齐,以便进行比较、融合或分析。
OpenCV(开源计算机视觉库)提供了一系列工具和算法来执行这项工作,其中包括相位相关法。
本文将深入探讨如何利用OpenCV实现相位相关图像配准,并详细介绍相关知识点。
相位相关是一种非像素级对齐技术,它通过计算两个图像的频域相位差异来确定它们之间的位移。
这种方法基于傅里叶变换理论,傅里叶变换可以将图像从空间域转换到频率域,其中图像的高频成分对应于图像的边缘和细节,低频成分则对应于图像的整体结构。
我们需要理解OpenCV中的傅里叶变换过程。
在OpenCV中,可以使用`cv::dft`函数对图像进行离散傅里叶变换。
这个函数将输入的图像转换为频率域表示,结果是一个复数矩阵,包含了图像的所有频率成分。
然后,为了进行相位相关,我们需要计算两个图像的互相关。
这可以通过将一个图像的傅里叶变换与另一个图像的共轭傅里叶变换相乘,然后进行逆傅里叶变换得到。
在OpenCV中,可以使用`cv::mulSpectrums`函数来完成这个步骤,它实现了复数乘法,并且可以指定是否进行对位相加,这是计算互相关的必要条件。
接下来,我们获得的互相关图在中心位置有一个峰值,该峰值的位置对应于两幅图像的最佳位移。
通过找到这个峰值,我们可以确定图像的位移量。
通常,这可以通过寻找最大值或最小二乘解来实现。
OpenCV提供了`cv::minMaxLoc`函数,可以帮助找到这个峰值。
在实际应用中,可能会遇到噪声和图像不完全匹配的情况。
为了提高配准的准确性,可以采用滤波器(如高斯滤波器)预处理图像,降低噪声影响。
此外,还可以通过迭代或金字塔方法逐步细化位移估计,以实现亚像素级别的精度。
在实现过程中,需要注意以下几点:1.图像尺寸:为了进行傅里叶变换,通常需要将图像尺寸调整为2的幂,OpenCV的`cv::getOptimalDFTSize`函数可以帮助完成这一操作。
2.零填充:如果图像尺寸不是2的幂,OpenCV会在边缘添加零,以确保傅里叶变换的效率。
3.归一化:为了使相位相关结果更具可比性,通常需要对傅里叶变换结果进行归一化。
一旦得到配准参数,可以使用`cv::warpAffine`或`cv::remap`函数将一幅图像变换到另一幅图像的空间中,实现精确对齐。
总结来说,OpenCV提供的相位相关方法是图像配准的一种高效工具,尤其适用于寻找微小的位移。
通过理解和运用上述步骤,开发者可以在自己的项目中实现高质量的图像配准功能。
2025/6/17 6:37:22 204KB OpenCV 相位相关 图像配准
1
基于seetaface的android实现,包含检测、对齐、比对,采用NEON优化提高处理速度,提高人脸旋转角度roll,pitch,yaw,带自动遍历比对人脸
2025/6/16 22:57:24 1.72MB seetaface
1
法律类句子对齐语料,是跨语言信息技术的实用好资源
2025/6/11 9:21:21 11.78MB 平行语料
1
视点变换,旋转,加速减速,星空背景太阳,光晕各行星纹理#include#include#include#include#include#include#include#pragmacomment(lib,"winmm.lib")#pragmacomment(lib,"wininet")//纹理图像结构typedefstruct{intimgWidth;//纹理宽度intimgHeight;//纹理高度unsignedcharbyteCount;//每个象素对应的字节数,3:24位图,4:带alpha通道的24位图unsignedchar*data;//纹理数据}TEXTUREIMAGE;//BMP文件头#pragmapack(2)typedefstruct{unsignedshortbfType;//文件类型unsignedlongbfSize;//文件大小unsignedshortbfReserved1;//保留位unsignedshortbfReserved2;//保留位unsignedlongbfOffBits;//数据偏移位置}BMPFILEHEADER;#pragmapack()//BMP信息头typedefstruct{unsignedlongbiSize;//此结构大小longbiWidth;//图像宽度longbiHeight;//图像高度unsignedshortbiPlanes;//调色板数量unsignedshortbiBitCount;//每个象素对应的位数,24:24位图,32:带alpha通道的24位图unsignedlongbiCompression;//压缩unsignedlongbiSizeImage;//图像大小longbiXPelsPerMeter;//横向分辨率longbiYPelsPerMeter;//纵向分辨率unsignedlongbiClrUsed;//颜色使用数unsignedlongbiClrImportant;//重要颜色数}BMPINFOHEADER;//定义窗口的标题、宽度、高度、全屏布尔变量#defineWIN_TITLE"模拟太阳系各星球的转动"constintWIN_WIDTH=800;constintWIN_HEIGHT=600;BOOLisFullScreen=FALSE;//初始不为全屏#defineDEG_TO_RAD0.017453floatangle=0.0;staticGLdoubleviewer[]={0,0,0,0,0};//初始化视角GLUquadricObj*quadric;//建立二次曲面对象GLfloatangle_Z;//星空旋转角度boolg_bOrbitOn=true;//控制转动暂停floatg_fSpeedmodifier=1.0f;//时间控制floatg_fElpasedTime;doubleg_dCurrentTime;doubleg_dLastTime;GLfloatLightAmbient[]={1.0f,1.0f,1.0f,0.0f};//环境光参数GLfloatLightDiffuse[]={1.0f,1.0f,1.0f,0.0f};//漫射光参数GLfloatLightPosition[]={0.0f,0.0f,0.0f,1.0f};//光源的位置//纹理图象TEXTUREIMAGEskyImg;TEXTUREIMAGEsunImg;TEXTUREIMAGErayImg;TEXTUREIMAGEmercuImg;TEXTUREIMAGEvenusImg;TEXTUREIMAGEearthImg;TEXTUREIMAGEmarsImg;TEXTUREIMAGEjupiterImg;TEXTUREIMAGEsaturnImg;TEXTUREIMAGEuranusImg;TEXTUREIMAGEneptuneImg;TEXTUREIMAGEmoonImg;GLuinttexture[12];//纹理数组//星球速度定义staticfloatfSunSpin=0.0f;//太阳自转速度staticfloatfMercuSpin=0.0f;//水星自转速度staticfloatfMercuOrbit=0.0f;//水星公转速度staticfloatfVenusSpin=0.0f;//金星自转速度staticfloatfVenusOrbit=0.0f;//金星公转速度staticfloatfEarthSpin=0.0f;//地球自转速度staticfloatfEarthOrbit=0.0f;//地球公转速度staticfloatfMarsSpin=0.0f;//火星自转速度staticfloatfMarsOrbit=0.0f;//火星公转速度staticfloatfJupiterSpin=0.0f;//木星自转速度staticfloatfJupiterOrbit=0.0f;//木星公转速度staticfloatfSaturnSpin=0.0f;//土星自转速度staticfloatfSaturnOrbit=0.0f;//土星公转速度staticfloatfUranusSpin=0.0f;//天王星自转速度staticfloatfUranusOrbit=0.0f;//天王星公转速度staticfloatfNeptuneSpin=0.0f;//海王星自转速度staticfloatfNeptuneOrbit=0.0f;//海王星公转速度staticfloatfMoonSpin=0.0f;//月亮自转速度staticfloatfMoonOrbit=0.0f;//月亮公转速度voidMakeTexture(TEXTUREIMAGEtextureImg,GLuint*texName)//转换为纹理{glPixelStorei(GL_UNPACK_ALIGNMENT,1);//对齐像素字节函数glGenTextures(1,texName);//第一个参数指定表明获取多少个连续的纹理标识符glBindTexture(GL_TEXTURE_2D,*texName);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,textureImg.imgWidth,textureImg.imgHeight,0,GL_RGB,GL_UNSIGNED_BYTE,textureImg.data);}//初始化OpenGLvoidInitGL(void){glClearColor(0.0f,0.0f,0.0f,0.5f);//设置黑色背景glClearDepth(2.0f);//设置深度缓存glEnable(GL_DEPTH_TEST);//启动深度测试glDepthFunc(GL_LEQUAL);//深度小或相等的时候渲染glShadeModel(GL_SMOOTH);//启动阴影平滑glEnable(GL_CULL_FACE);//开启剔除操作效果glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);//使用质量最好的模式指定颜色和纹理坐标的插值质量glLightfv(GL_LIGHT1,GL_AMBIENT,LightAmbient);//设置环境光glLightfv(GL_LIGHT1,GL_DIFFUSE,LightDiffuse);//设置漫反射光glEnable(GL_LIGHTING);//打开光照glEnable(GL_LIGHT1);//打开光源1//载入纹理glEnable(GL_TEXTURE_2D);//开启2D纹理映射MakeTexture(skyImg,&texture;[0]);MakeTexture(sunImg,&texture;[1]);MakeTexture(rayImg,&texture;[2]);MakeTexture(mercuImg,&texture;[3]);MakeTexture(venusImg,&texture;[4]);MakeTexture(earthImg,&texture;[5]);MakeTexture(marsImg,&texture;[6]);MakeTexture(jupiterImg,&texture;[7]);MakeTexture(saturnImg,&texture;[8]);MakeTexture(uranusImg,&texture;[9]);MakeTexture(neptuneImg,&texture;[10]);MakeTexture(moonImg,&texture;[11]);quadric=gluNewQuadric();//建立一个曲面对象指针gluQuadricTexture(quadric,GLU_TRUE);//建立纹理坐标gluQuadricDrawStyle(quadric,GLU_FILL);//面填充}voidDisplay(void){glLoadIdentity();//设置观察点的位置和观察的方向gluLookAt(viewer[0],viewer[1],viewer[2],viewer[3],viewer[4],-5,0,1,0);//摄像机x,摄像机y,摄像机z,目标点x,目标点y,目标点z,摄像机顶朝向x,摄像机顶朝向y,摄像机顶朝向z//获得系统时间使太阳系有动态效果g_dCurrentTime=timeGetTime();g_fElpasedTime=(float)((g_dCurrentTime-g_dLastTime)*0.0005);g_dLastTime=g_dCurrentTime;glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);//指定GL_MODELVIEW是下一个矩阵操作的目标glTranslatef(0.0f,0.0f,-5.0f);//将坐标系移入屏幕5.0fglRotatef(10,1.0f,0.0f,0.0f);//将坐标系绕x轴旋转10度glEnable(GL_LIGHT0);//打开光源0/**********************************绘制背景星空********************************************/glPushMatrix();//当前模型矩阵入栈glTranslatef(-10.0f,3.0f,0.0f);glRotatef(angle_Z,0.0f,0.0f,1.0f);glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D,texture[0]);//星空纹理glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,1.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,50.0f,-50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,-1.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,1.0f,0.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,-1.0f,0.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,50.0f,-50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(1.0f,0.0f,0.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,-50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(-1.0f,0.0f,0.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glEnd();glPopMatrix();//当前模型矩阵出栈/**********************************绘制太阳************************************************/glBindTexture(GL_TEXTURE_2D,texture[2]);//光晕纹理glEnable(GL_BLEND);//开启混合glDisable(GL_DEPTH_TEST);//关闭深度测试//绘制太阳光晕glDisable(GL_LIGHTING);//关闭光照glBlendFunc(GL_SRC_ALPHA,GL_ONE);//半透明混合函数glColor4f(1.0f,0.5f,0.0f,0.5f);//设置RGBA值glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,1.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-1.0f,-1.0f,0.0f);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0f,-1.0f,0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0f,1.0f,0.0f);glTexCoord2f(0.0f,1.0f);glVertex3f(-1.0f,1.0f,0.0f);glEnd();glDisable(GL_BLEND);//关闭混合glEnable(GL_DEPTH_TEST);glEnable(GL_LIGHTING);//开启光照glLightfv(GL_LIGHT1,GL_POSITION,LightPosition);//设置光源1位置glBindTexture(GL_TEXTURE_2D,texture[1]);//太阳纹理//将坐标系绕Y轴旋转fSunSpin角度,控制太阳自转glRotatef(fSunSpin,0.0,1.0,0.0);gluSphere(quadric,0.3f,32,32);//绘制太阳球体/**********************************绘制水星************************************************/glDisable(GL_LIGHT0);glEnable(GL_TEXTURE_2D);//开启纹理glPushMatrix();//当前模型视图矩阵入栈//将坐标系绕Y轴旋转fMercuOrbit角度,控制水星公转glRotatef(fMercuOrbit,0.0f,1.0f,0.0f);glRotatef(-90.0f,1.0f,0.0f,0.0f);//将坐标系绕X轴旋转-90度glTranslatef(0.5f,0.0f,0.0f);//将坐标系右移0.5fglBindTexture(GL_TEXTURE_2D,texture[3]);//水星纹理//将坐标系绕Z轴旋转fMercuSpin角度控制水星自转glRotatef(fMercuSpin,0.0f,0.0f,1.0f);gluSphere(quadric,0.04f,32,32);//水星球体glPopMatrix();//当前模型视图矩阵出栈//绘制轨道glBegin(GL_LINE_LOOP);for(angle=0;angle=-6.0)viewer[0]-=0.5;break;case'u':case'U':if(viewer[1]=-6.0)viewer[1]-=0.1;break;case'+':case'='://加速,减速,暂停g_fSpeedmodifier+=1.0f;glutPostRedisplay();break;case'':g_bOrbitOn=!g_bOrbitOn;glutPostRedisplay();break;case'-'://按'-'减小运行速度g_fSpeedmodifier-=1.0f;glutPostRedisplay();break;caseVK_ESCAPE://按ESC键时退出exit(0);break;default:break;}}voidspecial_keys(ints_keys,intx,inty){switch(s_keys){caseGLUT_KEY_F1://按F1键时切换窗口/全屏模式if(isFullScreen){glutReshapeWindow(WIN_WIDTH,WIN_HEIGHT);glutPositionWindow(30,30);isFullScreen=FALSE;}else{glutFullScreen();isFullScreen=TRUE;}break;caseGLUT_KEY_RIGHT://视角上下左右旋转if(viewer[3]=-3.0)viewer[3]-=0.1;break;caseGLUT_KEY_UP:if(viewer[4]=-4.5)viewer[4]-=0.1;break;default:break;}}voidmouse(intbtn,intstate,intx,inty)//远近视角{if(btn==GLUT_RIGHT_BUTTON&&state==GLUT_DOWN)viewer[2]+=0.3;if(btn==GLUT_LEFT_BUTTON&&state==GLUT_DOWN&&viewer;[2]>=-3.9)viewer[2]-=0.3;}voidLoadBmp(char*filename,TEXTUREIMAGE*textureImg)//载入图片{inti,j;FILE*file;BMPFILEHEADERbmpFile;BMPINFOHEADERbmpInfo;intpixel_size;//初始化纹理数据textureImg->imgWidth=0;textureImg->imgHeight=0;if(textureImg->data!=NULL){delete[]textureImg->data;}//打开文件file=fopen(filename,"rb");if(file==NULL){return;}//获取文件头rewind(file);fread(&bmpFile;,sizeof(BMPFILEHEADER),1,file);fread(&bmpInfo;,sizeof(BMPINFOHEADER),1,file);//验证文件类型if(bmpFile.bfType!=0x4D42){return;}//获取图像色彩数pixel_size=bmpInfo.biBitCount>>3;//读取文件数据textureImg->data=newunsignedchar[bmpInfo.biWidth*bmpInfo.biHeight*pixel_size];for(i=0;idata+(i*bmpInfo.biWidth+j)*pixel_size+2,sizeof(unsignedchar),1,file);//绿色分量fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+1,sizeof(unsignedchar),1,file);//蓝色分量fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+0,sizeof(unsignedchar),1,file);//Alpha分量if(pixel_size==4){fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+3,sizeof(unsignedchar),1,file);}}}//记录图像相关参数textureImg->imgWidth=bmpInfo.biWidth;textureImg->imgHeight=bmpInfo.biHeight;textureImg->byteCount=pixel_size;fclose(file);}//程序主函数voidmain(intargc,char**argv){//读图片LoadBmp("Picture//Sky.bmp",&skyImg;);LoadBmp("Picture//Sun.bmp",&sunImg;);LoadBmp("Picture//Ray.bmp",&rayImg;);LoadBmp("Picture//Mercu.bmp",&mercuImg;);LoadBmp("Picture//Venus.bmp",&venusImg;);//金星LoadBmp("Picture//Earth.bmp",&earthImg;);LoadBmp("Picture//Mars.bmp",&marsImg;);//火星LoadBmp("Picture//Jupiter.bmp",&jupiterImg;);//木星LoadBmp("Picture//Saturn.bmp",&saturnImg;);//土星LoadBmp("Picture//Uranus.bmp",&uranusImg;);//天王星LoadBmp("Picture//Neptune.bmp",&neptuneImg;);//海王星LoadBmp("Picture//Moon.bmp",&moonImg;);glutInit(&argc;,argv);//初始化GLUT库glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH);//初始化显示模式glutInitWindowSize(WIN_WIDTH,WIN_HEIGHT);//初始化窗口大小glutInitWindowPosition(20,20);//初始化窗口位置GLuintwindow=glutCreateWindow(WIN_TITLE);//建立窗口InitGL();//初始化OpenGLglutDisplayFunc(Display);glutReshapeFunc(Reshape);glutKeyboardFunc(keyboard);glutSpecialFunc(special_keys);glutMouseFunc(mouse);glutIdleFunc(Display);//设置窗口空闲时的处理函数glutMainLoop();//进入事件处理循环}
2025/6/8 20:47:10 3.53MB 三维动画 模拟太阳系
1
软件下载链接http://a.app.qq.com/o/simple.jsp?pkgname=com.example.bluetoothassist本软件为蓝牙串口通信工具,支持蓝牙从模式和主模式,可进行蓝牙串口通信测试。
能连接单片机及PC的蓝牙串口。
可用于硬件的串口蓝牙模块(TTL)通信。
软件功能:1、搜索蓝牙设备2、接收显示数据与发送数据3、可设置ASCII与HEX的输入输出模式4、自定义接收对齐字节数本工具含三种发送方式:1、定时发送方式:设定发送周期进行定时发送2、按键发送方式:可自定义5个按钮的输出值3、编辑发送方式:可编辑发送文本,支持发送回车键。
2025/6/4 22:17:27 12.75MB 蓝牙 串口助手 Android Studio
1
11.《无穷之旅:关于无穷大的文化史》(以色列)伊莱·马奥尔著王前武学民金敬红译2000年8月第一版12.《20世纪数学的五大指导理论》(美国)约翰·L·卡斯蒂著叶其孝刘宝光译2000年12月第一版13.《数:科学的语言》(美国)T·丹齐克著苏仲湘译2000年12月第一版14.《数学游戏与欣赏》(美国)劳斯·鲍尔(加拿大)考克斯特著杨应辰译2001年4月第一版15.《数学旅行家:漫游数王国》(美国)卡尔文·C·克劳森著袁向东袁钧译2001年12月第一版
2025/4/20 16:27:10 40.18MB math
1
一个编辑器的控件,类似photoshop的标尺,标尺为SVG所画,可无限拖参考线出来,参考线也可销毁,方便设计师对齐,距离等设计
2025/4/17 19:17:03 78KB 标尺 参考线 拖拽 SVG
1
角编辑器面料js基于Fabricjs的Angular拖放编辑器,具有多个选项例输出量产品特点导出到图片导出到SVG保存到本地存储从本地存储加载干净的工作区调整工作区大小添加文字添加图片上传图片添加数字(矩形,三角形,正方形,圆形)渲染为JSON克隆对象发送到前面的对象发送回对象删除物件取消选择对象向对象添加ID物体不透明度颜色到对象对象的字体功能文字对齐对象样式到对象字体大小到对象的线高字符到对象的间距在您的项目中安装库npmiangular-editor-fabric-js发展历程安装项目gitclonehttps://github.com/kevoj/angular-editor-fabric-js.gitcdangular-editor-fabric-jsnpminstall开始为开发服务器运行ngserve。
导航到http://localhost:4200/。
如果您更改任何源文件,该应用程序将自动重新加载。
建立运行ngbuild来构建项目。
构建工件将存储在dist
2025/4/15 21:44:36 394KB editor angular canvas drag-and-drop
1
共 250 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡