使用OpenGL读取3DS文件的示例代码。
演示说明了3DS文件的结构、三维控件中视线、旋转设置,以及简单的动画。
重要说明如下------------------全局变量-------------g_Load3ds 读入数据的类g_3DModel 数据本身g_RotationSpeed 旋转速度---------------------函数---------------【WinMain】 入口函数。
调用Init初始化OpenGL 调用MainLoop显示【Init】 初始化OpenGL,读取数据 调用InitialOpenGL初始化 调用CLoad3DS的Import3DS函数,从文件中读取g_3DModel 调用CreateTexture,装入纹理【MainLoop】 循环调用RenderScence渲染场景,直到窗口关闭时退出 删除场景中对象 效用DeInit恢复初始化之前的状态【RenderScence】 渲染 gluLookAt,选择视角 glRotatef,旋转---------------------------------------根目录下FACE.3DS为三维数据,FACE.BMP为其所指的贴图数据。
如果想读取其他文件,在代码中替换#defineFILE_NAME"face.3ds"为其他3DS格式文件名即可。
如果读取结果是黑屏,往往是视角和视场设置错误,可以查看三维数据的位置,更改gluLookAt和gluPerspective。
2023/8/16 15:31:48 4.04MB OpenGL 3DS 三维
1
DS2782测量可充电锂离子和锂离子聚合物电池的电压、温度和电流,并估算其可用电量。
电量计算所需的电池特性参数和应用参数存储在片内EEPROM中。
通过可用电量寄存器,向主系统报告在当前的温度、放电速率、存储电荷和应用参数下,可供系统使用的电荷量的一个保守估计。
估计电量以剩余mAh数和满容量的百分比的形式报告。
用法:bsp_Init_DS2782();
while(1){Get_ds2782_inif(&Ds2782;)}
2023/8/4 8:47:48 4KB DS2782
1
可以用手机APP操控小车的运动#include"delay.h"#include"sys.h"#include"usart.h"#include"stm32f10x_tim.h"#include"motor.h"#include"PWM.h"intmain(void){u16t;u16len;u16times=0;u8a[200];delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600);//串口初始化为9600TIM4_PWM_Init(899,0);Motor_12_Config();//298电机驱动初始化IN1(Low);IN2(High);IN3(Low);IN4(High);//保持控制正反转电平恒定默认直行while(1){Motor_1_STOP();Motor_2_STOP();if(USART_RX_STA&0x8000;){
2023/8/1 23:08:58 3.3MB 智能小车
1
网上搜集#include#include"1602.h"#include"uart.c"#include"tc35.c"//#defineRsBuf_N50//charRsBuf[RsBuf_N];//定义串口接收数据缓冲区//ucharRsPoint=0;ucharcodePhoneNO[]="+8615900000000";//改了ucharcodeText[]="IloveSDNU";ucharcodecenter[]="+8613800531500";voidmain(){TC35_init();Uart_init();init_1602();Send_AT();Set_MODE(1);//设置短消息模式Set_CENTER(center);//设置短消息中心AT+CSCA=“+8613800531500”回车TransmitText(PhoneNO,Text);while(1);//lcd_disp_str(RsBuf,2);}
2023/7/22 11:16:40 11KB 51单片机
1
msp430f6638的时钟模块,可移植,纯原创,注释清晰,易懂,只需在主函数中调用clock——init函数即可。
2023/7/18 0:12:06 37KB msp430 时钟
1
各种各样的一切与和最小博客。
这是一个带有预配置的SanityStudio(/studio)和Eleventy的非常基本设置(/web)的monorepo。
快速开始npminstall在本地的项目根文件夹中npmrunsanity-init以使用新项目或现有项目重新配置工作室npmrundev以观看模式启动Studio和11tySanityStudio在上运行11ty输出的静态文件_sitenpmrunbuild以在本地构建生产在Netlify上部署您可以将Studio和11ty博客在Netlify上,作为两个应用程序。
登录到您的Netlify帐户,并使用以下设置将它们添加为两个单独的应用程序:工作室存储库:基本目录:studio生成命令:npmrunbuild&&cp./n
2023/7/4 12:26:17 639KB CSS
1
简单的遗传算法,计算函数最值.functionga_main()%遗传算法程序%n--种群规模%ger--迭代次数%pc---交叉概率%pm--变异概率%v--初始种群(规模为n)%f--目标函数值%fit--适应度向量%vx--最优适应度值向量%vmfit--平均适应度值向量clearall;closeall;clc;%清屏tic;%计时器开始计时n=20;ger=100;pc=0.65;pm=0.05;%初始化参数%以上为经验值,可以更改。
%生成初始种群v=init_population(n,22);%得到初始种群,22串长,生成20*22的0-1矩阵[N,L]=size(v);%得到初始规模行,列disp(sprintf('Numberofgenerations:%d',ger));disp(sprintf('Populationsize:%d',N));disp(sprintf('Crossoverprobability:%.3f',pc));disp(sprintf('Mutationprobability:%.3f',pm));%sprintf可以控制输出格式%待优化问题xmin=0;xmax=9;%变量X范围f='x+10*sin(x.*5)+7*cos(x.*4)';%计算适应度,并画出初始种群图形x=decode(v(:,1:22),xmin,xmax);"位二进制换成十进制,%冒号表示对所有行进行操作。
fit=eval(f);%eval转化成数值型的%计算适应度figure(1);%打开第一个窗口fplot(f,[xmin,xmax]);%隐函数画图gridon;holdon;plot(x,fit,'k*');%作图,画初始种群的适应度图像title('(a)染色体的初始位置');%标题xlabel('x');ylabel('f(x)');%标记轴%迭代前的初始化vmfit=[];%平均适应度vx=[];%最优适应度it=1;%迭代计数器%开始进化whileit<=ger%迭代次数0代%Reproduction(Bi-classistSelection)vtemp=roulette(v,fit);%复制算子%Crossoverv=crossover(vtemp,pc);%交叉算子%Mutation变异算子M=rand(N,L)<=pm;%这里的作用找到比0.05小的分量%M(1,:)=zeros(1,L);v=v-2.*(v.*M)+M;%两个0-1矩阵相乘后M是1的地方V就不变,再乘以2.NICE!!确实好!!!把M中为1的位置上的地方的值变反%这里是点乘%变异%Resultsx=decode(v(:,1:22),xmin,xmax);%解码,求目标函数值fit=eval(f);%计算数值[sol,indb]=max(fit);%每次迭代中最优目标函数值,包括位置v(1,:)=v(indb,:);%用最大值代替fit_mean=mean(fit);%每次迭代中目标函数值的平均值。
mean求均值vx=[vxsol];%最优适应度值vmfit=[vmfitfit_mean];%适应度均值it=it+1;%迭代次数计数器增加end
2023/7/1 23:41:32 4KB 遗传算法
1
微软开源试验室克隆此存储库该存储库搜罗。
Git阻滞咱们知道申请它下载子模块的内容。
您也能够在这里使用gitsubmoduleupdate--init--recursive,然则假如您是第一次克隆此存储库,则能够使用更正后的clone召唤来确保下载齐全内容,搜罗任何子模块:gitclone--recursivegit@github.com:Microsoft/OpenSourceLabs.git更新子模块的最新变更成为了更新存储库子模块的内容,您能够定期实施如下召唤:gitsubmoduleupdate--remote--recursive削减子模块削减一个子模块以指向内部存储库很约莫。
请使用如下召唤向该存储库削减新的子模块:gitsubmoduleadd[RepositoryUrl][DirectorytoAddthesubmodule]供献该名目驱散您的供献以及建议。
大大都捐钱申请您拥护“捐钱者应承协议”(CLA),申明您有权并实际上付与咱们使用您的捐钱的权柄。
无关详尽信息,请晤面。
当您提交拉取恳求时
1
////linux只应承单进程具备一个按时器,于是在linux下的单进程中要使用多个按时器,则需要自己掩护管理////这个实现应承用户使用多个自定义的按时器,每一个自定义的按时器将周期地被触发直到其被删除了。
实现的首要思绪是:////i)起首在初始化多按时器(init_mul_timer)时行使setitimer注册一个底子的功夫单元(如1s)的定大势情;
////ii)用户需要set_a_timer注册自定义按时器时,在timer_manage管理结构中记实这个按时器的回调函数以及按时周期等参数;
////iii)当底子的功夫单元到期后(如SIGALRM信号抵达时),遍历全部timer_manage,假如有自定义按时器的超时功夫到了,//就把该回调函数削减到线程池的责任中,让线程池外面的线程去实施,而后将自定义按时器的超时功夫置为末了值0;
////iv)用户经由del_a_timer来删除了某个按时器,经由destroy_mul_timer来删除了全部多按时器。
2023/4/21 0:22:27 5KB linux 定时器 线程池
1
#include"led.h"#include"delay.h"#include"key.h"#include"sys.h"#include"usart.h" #include"adc.h"/************************************************ALIENTEK战舰STM32F103开拓板试验17ADC试验本领反对于:www.openedv.com淘宝店肆:http://eboard.taobao.com存眷微信人民平台微信号:"晚点原子",免费患上到STM32资料。
广州市星翼电子科技有限公司作者:晚点原子@ALIENTEK************************************************/intmain(void){ u16adcx; floattemp; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//配置中断优先级分组为组2:2位抢占优先级,2位照料优先级 uart_init(115200); //串口初始化为115200 Adc_Init(); //ADC初始化 while(1) { adcx=Get_Adc_Average(ADC_Channel_1,10); temp=(float)adcx*(3.3/4096); delay_ms(250); printf("%5.2f",temp); }}
2023/4/9 23:55:30 6.94MB STM32 ADC
1
共 99 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡