找回密码
 注册
搜索
查看: 1637|回复: 6

[资料] [教程]怎么在展讯Mocor平台上仿一个Iphone

[复制链接]
发表于 2012-12-14 15:26:22 | 显示全部楼层 |阅读模式
不打算做展讯了,留些资料,写点东西  !

想来想去不知道怎么开始,还是挑个有意思的东西吧

仿IPHONE的指南针
<img src="attachments/dvbbs/2012-12/201212141523161669.jpg" border="0" onclick="zoom(this)" onload="if(this.width>document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />
指南针这个东西算是iphone上一个独立简单的模块,Mocor上没有指南针的传感器
不过用下方向的传感器也是可以的 只是不大准确  不过我们的要求很简单
只要要求能旋转即可!
Mocor上做动画一般是用定时器控制的图片的帧数即可显示
另外关于这个指南针的重点就是 旋转输出函数 GRAPH_RotateArbitrary
其实这个东西和模拟闹钟的指针差不多的,不过闹钟是封装好的函数

旋转函数GRAPH_RotateArbitrary两个参数ROTATE_ARBITRARY_IN_T ROTATE_ARBITRARY_OUT_T   意思很好理解 ROTATE_ARBITRARY_IN_T  就是要输入的,以及输出的格式 ROTATE_ARBITRARY_OUT_T 就是接收旋转后输出的的结果,但是实质的情况是比较怪异的 out的基本上没用到  为什么这样,我也没明白展讯的设计
typedef struct
{
        IMGREF_SIZE_T                        src_size;                                //source image size
        IMGREF_DATA_FORMAT_E        src_format;                                //source image format, both RGB565 and ARGB888 are allowed
        IMGREF_CHN_T                        src_chn;                                //source image data buffer
        IMGREF_POINT_T                        src_center;                                //rotation center point of the source image

        IMGREF_SIZE_T                        target_size;                        //target image size
        IMGREF_DATA_FORMAT_E        target_format;                        //target image format, be the same as that of the source image
        IMGREF_CHN_T                        target_chn;                                //target image data buffer
        IMGREF_POINT_T                        target_center;                        //rotation center point of the target image       
       
        int32                                        angle;                                        //rotation angle

        ROTATE_ARBITRARY_MODE_E        mode;                                        //rotated mode: auto crop or no crop of rotated image

        BOOLEAN                                        speed_up;                                //set TRUE to use quicker alogrithm. The source image will be overwritten.
}ROTATE_ARBITRARY_IN_T;
首先看看ROTATE_ARBITRARY_IN_T, src_ 等参数就代表 预先设置的输入参数
src_size 代表旋转的图片的尺寸(width,height)src_center 代表以原始图片的那个点做圆心旋转 (一般我们都去图片的中心点)src_chn (这个就是原始图片的 数据指针和大小了 这个指针我们有两种方法得到 一种是解码图片格式 一种用先读到layer中再获取。第一种的话很正规的方式 MMI_GetLabelImage 首先用这个资源函数得到图片存储的指针位置  然后由于我们旋转的是PNG函数 调用展讯的DecompressARGB 函数可以解码出图片的数据 这个数据就是我们 src_chn 所需要的数据)ROTATE_ARBITRARY_IN_T 中还有另外一个target参数 刚才我们不是说ROTATE_ARBITRARY_OUT_T没用上么?对我们确实没用上,我们最后用的是 ROTATE_ARBITRARY_IN_T 的target .从名字来看也比较明显 就是目标target_size 旋转后的大小 一般我们用原始的width+height  其他的参数和in是差不多的   关键的参数是angle  就是我们指定要旋转多少度  这个参数要注意一下 (0<angle<360) angle=30 顺时针转30 如果逆时针要转30 我们就用angle =360-30

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2012-12-16 01:54:33 | 显示全部楼层
精美礼品一点到手http://718918.taobao.com/
点评回复

使用道具 举报

发表于 2012-12-16 01:51:23 | 显示全部楼层
精美礼品一点到手http://718918.taobao.com/
点评回复

使用道具 举报

 楼主| 发表于 2012-12-14 16:07:22 | 显示全部楼层
我们要做旋转就得必须用定时器控制angle大小的不停的变化,这样效果就出来了
至于旋转后的效果怎么显示,肯定是用layer来接收旋转后的指针数据!
具体效果看代码就知道了 320X480 付完整的代码包!
【文件名】:121214@52RD_compass.rar
【格 式】:rar
【大 小】:723K
【简 介】:
【目 录】:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

发表于 2013-7-30 16:21:54 | 显示全部楼层
正在学习展讯 SC6531
点评回复

使用道具 举报

发表于 2013-8-20 13:47:57 | 显示全部楼层
好东西顶下!!!!!!!!!!!!
点评回复

使用道具 举报

发表于 2013-9-11 16:09:05 | 显示全部楼层
好东西顶下!!!!!!!!!!!!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-23 11:03 , Processed in 0.049739 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表