完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 烈焰123 于 2016-5-30 15:28 编辑
这是一部分程序,void transformation()主要是分象限执行相应的操作,pow为平方函数,sqrt为开平方函数,acos为反三角函数。谁给看看为什么程序编译没错,但是实际上硬件出错(显示R和jd值)主要看看是不是IF函数有问题。 #include #include #define uint unsigned int #define uchar unsigned char //、、 #define pi 3.1415926 unsigned int t1,t2; unsigned int x0,y0; //X,Y为相对于触摸屏原点(516,498)的距离坐标。x0,y0为触摸屏坐标,x5,y5为实际坐标 float X,Y,x5,y5; float jd,R; unsigned char fg; #define a 27185.4144+pow(Y,2) #define b Y*sqrt(pow(Y,2)+54370.8288) #define bu 164.88-b #define bd 164.88+b #define e 516 //触摸屏原点x坐标 #define d 498 //触摸屏原点Y坐标 void transformation() { if(x0>e&&y0>d) //第一象限 { X=x0-e; Y=y0-d; fg=1; x5=3.607*a/bu; y5=841.21*b/bu; R=sqrt(pow(x5,2)+pow(y5,2)); jd=acos(x5/R); t1=R/52; t2=0.394*jd/pi; } else if(x0 { Y=y0-d; X=e-x0; fg=2; x5=3.607*a/bu; y5=841.21*b/bu; R=sqrt(pow(x5,2)+pow(y5,2)); jd=acos(x5/R); t1=R/52; t2=142-0.394*jd/pi; //180-jd } else if(x0 fg=3; X=e-x0; Y=d-y0; x5=3.607*a/bd; y5=841.21*b/bd; R=sqrt(pow(x5,2)+pow(y5,2)); jd=acos(x5/R); //180-jd t1=R/52; t2=142-0.394*jd/pi; //180-jd } else if(x0>e&&y0 fg=4; X=x0-e; Y=d-y0; x5=3.607*a/bd; y5=841.21*b/bd; R=sqrt(pow(x5,2)+pow(y5,2)); jd=acos(x5/R); t1=R/52; t2=0.394*jd/pi; } else { fg=0; R=0; jd=0; } }void main() { x0= 610; //e=516 y0= 592; //d=498 transformation(); } |
|
相关推荐
3个回答
|
|
|
|
|
|
|
|
|
|
主函数不用while(1),程序怎么连续工作,没有while(1),它只执行一次
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
522 浏览 0 评论
656 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
978 浏览 0 评论
1042 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
735 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12045 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 13:19 , Processed in 0.513685 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号