用VC++做的MFC科学计算器,整个工程都已打包,内含代码,EXE文件等.在VC++6.0可以直接运行。
可以计算+/-,1/x,3√x,e^x,10^x,x^2,x^3,n!,sin,cos,tan,arcsin,arccos,arctan,sinh,cosh,tanh,arsh,arch,arth,ln,log,abs,Int,+,-,*,/,y√x,x^y,logxY,nPr,nCr,mod等运算
2023/7/27 10:11:58 1.6MB 科学计算器 MFC VC++
1
汽车ABS控制算法及基于ARM控制器的开发研究
2023/7/21 14:07:55 2.11MB ABS
1
LibNoise分形噪声函数库的JAVA翻译版,个人开发,仅供参考。
包中包含:异常模块:noise.Exceptionnoise.ExceptionInvalidParam无效的参数异常。
noise.ExceptionNoModule无模块异常,无法检索到该源模块noise.ExceptionOutOfMemorynoise.ExceptionUnknown模型模块:noise.model.Line线noise.model.Plane平面noise.model.Sphere球体noise.model.Cylinder圆柱发生器模块:noise.module.Perlin培林噪声 noise.module.RidgedMulti脊多重分形噪声noise.module.Billow巨浪 value=|perlin_value|*2-1.0;noise.module.Voronoi细胞噪声,Voronoi图noise.module.Const常量 value=const;noise.module.Cylinders圆柱noise.module.Checkerboard棋盘格 value=(floor(x)&1^floor(y)&1^floor(z)&1)!=0?-1.0:1.0;noise.module.Spheres球体选择器模块:noise.module.Select选择noise.module.Blend混合 value=((1.0-(modules[3].value+1)/2)*modules[0].value)+((modules[3].value+1)/2*modules[1].value);修饰器模块:noise.module.Invert倒置 value=-value;noise.module.Abs绝对值 value=|value|;noise.module.Clamp截取 value=(valueupperBound?upperBound:value);lowerBound:下截取值;upperBound:上截取值noise.module.Curve曲线 value=noise.module.Curve.ControlPoint控制点noise.module.ScaleBias偏移缩放, value=value*scale+offsetnoise.module.Turbulence湍流 value=modules[0].getValue(x+modules[1].value*power,y+modules[2].value*power,z+modules[3].value*power);noise.module.Exponent指数 value=(pow(abs((value+1.0)/2.0),exponent)*2.0-1.0);组合模块:noise.module.Add添加 value=modules[0].value+modules[1].value;noise.module.Max最大值 value=max(value);noise.module.Min最小值 value=min(value);noise.module.Multiply乘法 value=modules[0].value*modules[1].value;noise.module.Power权重 value=pow(modules[0].value,modules[1].value);变压模块:noise.module.Displace位移替换,扭曲value=modules[0].getValue(x+modules[1].value,y+modules[2].value,z+modules[3].value);noise.module.RotatePoint点旋转noise.module.ScalePoint点缩放,轴缩放 value=modules[0].getValue(x*xScale,y*yScale,z*zScale);noise.module.Terrace露台,梯台noise.mod
2023/7/8 13:24:28 53KB java 噪声 分形 地形
1
用DDraw实现射击游戏阐发文档要点一:画图自动切割IDirectDrawSurface7::BltFast()方式中不自动切割成果,即当画图元素逾越窗口之外时不会自动切割,DDraw遴选自动漠视不画,组成一旦逾越窗口,画图元素会忽然磨灭。
处置这一下场的方式是手动切割,代码如下://自动切割 RECTscRect; //寄存之后窗口大小地域 ZeroMemory(&scRect,sizeof(scRect)); GetWindowRect(GetActiveWindow(),&scRect); //提防图片左上角逾越窗口左上角 if(xscRect.right?scRect.right:x; y=y>scRect.bottom?scRect.bottom:y; m_rect.right=x+m_rect.right-m_rect.left>scRect.right?scRect.right-x+m_rect.left:m_rect.right; m_rect.bottom=y+m_rect.bottom-m_rect.top>scRect.bottom?scRect.bottom-y+m_rect.top:m_rect.bottom;惟独将上述代码加在CGraphic::BltBBuffer()中的m_bRect=m_rect;前就可。
要点二:配景的滚轴实现 画配景能够分为如下三种情景: 情景一:配景图片与窗口等高 情景二:配景图片高度小于窗口高度 情景三:配景图片高度大于窗口高度上述教学图与代码相对于应地看,有助于约莫知道。
另外,要点一实现之后,由于已经能够自动切割,画配景能够用另外方式。
要点三:精灵图的实普通游戏中,如RPG游戏中的人物图、射击类游戏的飞机、爆炸等,叫做精灵图。
精灵图实际上是将齐全帧的图片放在一个文件中,游戏时靠一个RECT来抑制画图像文件中的哪一部份,进而抑制游戏展现哪一帧图,惟独抑制好RECT的位置就可。
如下图:抑制RECT的四个角的坐标的挪动,有如下代码:if(m_timeEnd–m_timeStart>100) //惟独到了100ms之后才画图 {m_ImageID++; if(m_ImageID-m_beginID>=num) { m_ImageID=m_beginID; //末了一帧的下一帧是第一帧 } m_timeStart=timeGetTime(); } intid=m_ImageID++; SetRect(&m_rect,41*id,0,41*(id+1),41); //飞机精灵图大小是41×41 m_pGraph->BltBBuffer(m_pImageBuffer,true,m_Pos.x,m_Pos.y,m_rect);如许就实现为了精敏捷画的下场。
要点四:拿STL举行枪弹的实现枪弹的实现能够使用STL中的vector,当按下开战键时收回一颗枪弹,就往vector中削减一个结点;
当枪弹飞出窗口或者击中敌机时,再将结点从vector中删除了。
每一帧游戏画面中枪弹翱翔时惟独将vector中的齐全枪弹举行处置、绘画就可。
参考代码如下:1.削减枪弹if(g_ctrlDown) //当ctrl键按下时开炮! { m_BulletEnd=m_Gtime->GetTime(); if((m_BulletEnd-m_BulletStart)*1000>120) //假如络续按着开战键不放,这里抑制不会收回太多枪弹 { m_BulletStart=m_BulletEnd; MBULLETtmpBullet; tmpBullet.pos.x=m_SPos.x-1; //记实开战时的枪弹位置 tmpBullet.pos.y=m_SPos.y-26; tmpBullet.speed=5; //该枪弹的翱翔速率 m_BulletList.push_back(tmpBullet); //将枪弹削减到vector中 } } 2.删除了枪弹vector::iteratoritei; //vector迭代器 for(itei=m_BulletList.begin();itei!=m_BulletList.end();itei++) //遍历齐全枪弹{m_BulletList.erase(itei); //删除了这个枪弹itei=m_BulletList.begin(); //删除了一个结点后,为防止侵蚀下次就重新查验if(m_BulletList.empty()) break; //若删除了结点后枪弹vector已经空则跳出轮回} 3.枪弹遍历处置vector::iteratoritei; //vector迭代器 for(itei=m_BulletList.begin();itei!=m_BulletList.end();itei++) //遍历齐全枪弹{itei->pos.y-=itei->speed; //枪弹翱翔}要点五:碰撞检测使用WindowsAPI函数RectInRegion:vector::iteratoritei; //vector迭代器for(itei=m_EnimyList.begin();itei!=m_EnimyList.end();itei++) //遍历齐全敌机{HRGNhrgn=::CreateRectRgn(m_player->pos.x,m_player->pos.y,m_player->pos.x+41,m_player->pos.y+41); //患上到飞机Region,图宽41高41 SetRect(&m_rect,itej->getPosition().x,itej->getPosition().y,itej->getPosition().x+50,itej->getPosition().y+50) //患上到敌机rect,敌机宽50高50 if(RectInRegion(hrgn,&m_rect)) //两机相撞 { ……………………. //碰撞之后的种种处置 }}让碰撞愈加准确:使用WindowsAPI函数PtInRegion()以及CreatePolygonRgn(),选取配角飞机的三个关键点的坐标放在POINT数组中,并将其作为参数代入CreatePolygonRgn()中天生HRGN,在枪弹与配角飞机做碰撞检测时惟独分辨枪弹的中间点能否在这个Region中就可(PtInRegion())。
留意:CreateRectRgn()与CreatePolygonRgn()等建树Region的函数会占用体系资源,由于游戏的主渲染函数Render()是络续实施的,如许会组成资源糜掷,于是在用完之后未必要释放:DeleteObject(region)要点六:敌机直线翱翔末了想这个下场的时候,感应很好实现,脑子里马上想到以及了。
其实如许实现有下场,当尽头以及尽头的连线斜率不是1或者-1时就会涌现意想不到的责任了,飞机并无直接飞向尽头,而因此斜率相对于值为1的路途飞已经往,再水平或者垂直飞向尽头。
处置这个下场有多少个方式,其中有一个方式是行使盘算机图形学上的Bresenhem直线算法。
该算法用于盘算机画平面上的直线,算法如下:|m|abs(deltaY))//轨迹斜率0)//1 { if(m_bFirstCalculate) { m_Delta=2*abs(deltaX)-abs(deltaY);//d0=2×dx-dy m_bFirstCalculate=false; } //依据轨迹斜率分辨能否要挪动X坐标 if(m_Delta>0)//m_iTempo)break;}//endofwhile(*pStr)
2023/5/1 0:27:02 2.18MB DDraw
1
基于PID抑制器搭建的车辆防抱去世抑制体系(ABS)simulink模子。
2023/4/5 20:24:48 19KB pid abs 车辆控制 Simulink模型
1
分步傅里叶法Matlab代码同享代码clc;clearall;closeall;clf;cputime=0;tic;ln=1;i=sqrt(-1);Po=.00064;%inputpwrinwattsalpha=0;%FiberlossvalueindB/kmalph=alpha/(4.343);%Refpage#55eqn2.5.3FiberopticCommbyGPAgrawalgamma=0.003;%fibernonlinearityin/W/mto=125e-12;%initialpulsewidthinsecondC=-2;%Inputchirpparameterforfirstcalculationb2=-20e-27;%2ndorderdisp.(s2/m)Ld=(to^2)/(abs(b2));%dispersionlengthinmeterpi=3.1415926535;
2023/2/22 5:35:52 50KB split step fourier method
1
N=512;A=zeros(N,N);B=zeros(N,N);forI=1:1:256J=1:1:256ImageNum=double(Image(I,J,1));A(I,J)=ImageNum/255;B(I,J)=0;endendfigure;imshow(A);pi=3.1415926;forI=1:1:NforJ=1:1:NR=rand(1,1);%生成一个元素在0,1之间均匀分布的随机矩阵RB(I,J)=A(I,J)*sin(R*2*pi);%平滑函数的傅里叶变换谱A(I,J)=A(I,J)*cos(R*2*pi);F(I,J)=A(I,J)+j*B(I,J);endEnd%限制振幅的动态范围,进步编码的精度F=fft2(F);%作二维快速傅里叶变换FFTMax=max(max(abs(F)));F=F/Max;A=real(F);B=imag(F);aIpha=0.5;%定义载波参数aIphaforI=1:1:NforJ=1:1:NXcos=(J-1)/127;A1(I,J)=cos(2*pi*aIpha*Xcos);B1(I,J)=sin(2*pi*aIpha*Xcos);endend%全息图数据区forI=1:1:NforJ=1:1:NHoIodata(I,J)=0.5+0.5*(A(I,J)*A1(I,J)+B(I,J)*B1(I,J));endEndM=512;N=512;%定义全息图的大小Hologram=zeros(M,M);S=M/N;%定义每个抽样单元大小forI=1:1:NforJ=1:1:NXa=(J-1)*S+1;Xb=J*S;Ya=(I-1)*S+1;Yb=I*S;forIx=Xa:1:XbforIy=Ya:1:YbHoIogram(Iy,Ix)=HoIodata(I,J);endendendendMax=max(max(HoIogram));HoIogram=HoIogram/Max;figure;imshow(HoIogram);%以下是用matlab分别计算函数各抽样点的傅里叶变换谱的幅角与模,并对各点的模归一化object=fft2(HoIogram);object=fftshift(object);%用matlab中的移谱函数fftshift()将频谱的低频成分移到中心,以避免再现时像分散在边缘object=abs(object);object=1000*object/max(max(object));figure;imshow(object);
2019/5/1 5:12:10 973B 数字全息
1
N=512;A=zeros(N,N);B=zeros(N,N);forI=1:1:256J=1:1:256ImageNum=double(Image(I,J,1));A(I,J)=ImageNum/255;B(I,J)=0;endendfigure;imshow(A);pi=3.1415926;forI=1:1:NforJ=1:1:NR=rand(1,1);%生成一个元素在0,1之间均匀分布的随机矩阵RB(I,J)=A(I,J)*sin(R*2*pi);%平滑函数的傅里叶变换谱A(I,J)=A(I,J)*cos(R*2*pi);F(I,J)=A(I,J)+j*B(I,J);endEnd%限制振幅的动态范围,进步编码的精度F=fft2(F);%作二维快速傅里叶变换FFTMax=max(max(abs(F)));F=F/Max;A=real(F);B=imag(F);aIpha=0.5;%定义载波参数aIphaforI=1:1:NforJ=1:1:NXcos=(J-1)/127;A1(I,J)=cos(2*pi*aIpha*Xcos);B1(I,J)=sin(2*pi*aIpha*Xcos);endend%全息图数据区forI=1:1:NforJ=1:1:NHoIodata(I,J)=0.5+0.5*(A(I,J)*A1(I,J)+B(I,J)*B1(I,J));endEndM=512;N=512;%定义全息图的大小Hologram=zeros(M,M);S=M/N;%定义每个抽样单元大小forI=1:1:NforJ=1:1:NXa=(J-1)*S+1;Xb=J*S;Ya=(I-1)*S+1;Yb=I*S;forIx=Xa:1:XbforIy=Ya:1:YbHoIogram(Iy,Ix)=HoIodata(I,J);endendendendMax=max(max(HoIogram));HoIogram=HoIogram/Max;figure;imshow(HoIogram);%以下是用matlab分别计算函数各抽样点的傅里叶变换谱的幅角与模,并对各点的模归一化object=fft2(HoIogram);object=fftshift(object);%用matlab中的移谱函数fftshift()将频谱的低频成分移到中心,以避免再现时像分散在边缘object=abs(object);object=1000*object/max(max(object));figure;imshow(object);
2017/1/5 5:10:15 973B 数字全息
1
利用matlab单轮abs控制仿真m文件
2020/10/5 9:44:01 1KB ABS MATLAB
1
1.实验内容1、让计算机接受一个文法,示例如(仅供参考):G[S]为:S→ABS→bCA→εA→bB→εB→aDC→ADC→bD→aSD→c2、编程实现对上述文法能否是LL(1)文法的判断,是则给出肯定回答,否则给出否定回答。
3、判别能否是LL(1)文法。





2016/9/23 11:34:55 1KB 编译原理实验 LL(1)文法 python
1
共 36 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡