大乐透中4保4旋转矩阵 中4保4矩阵

求旋转矩阵:选8中5保4 和 选7中4保3公式,
这是玩彩票了吧!可惜啊,这方面的公式少之又少!
为您推荐:
其他类似问题
扫描下载二维码四元数,欧拉角和旋转矩阵之间的互相转换 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 9时,
公式是从网上搜索的,代码自己编写的,适用任意支持C的平台,原本是为了6轴融合模拟9轴效果用的。
代码片段(1)
四元数与欧拉角以及矩阵之间的转换.c&~&4KB&&&&
//公式都是网上搜罗的,下面这些经过简单的测试,确认可用。
//ps: x,y,z,w 分别是四元素的四个值。稍微修改下就可以用。
// 由旋转矩阵创建四元数
inline CQuaternion(const _Matrix4& m)
float tr, s, q[4];
int nxt[3] = {1, 2, 0 };
// 计算矩阵轨迹
tr = m._11 + m._22 + m._33;
// 检查矩阵轨迹是正还是负
if(tr&0.0f)
s = sqrt(tr + 1.0f);
this-&w = s / 2.0f;
s = 0.5f /
this-&x = (m._23 - m._32) *
this-&y = (m._31 - m._13) *
this-&z = (m._12 - m._21) *
// 轨迹是负
// 寻找m11 m22 m33中的最大分量
if(m.m[1][1]&m.m[0][0]) i = 1;
if(m.m[2][2]&m.m[i][i]) i = 2;
j = nxt[i];
k = nxt[j];
s = sqrt((m.m[i][i] - (m.m[j][j] + m.m[k][k])) + 1.0f);
q[i] = s * 0.5f;
if( s!= 0.0f) s = 0.5f /
q[3] = (m.m[j][k] - m.m[k][j]) *
q[j] = (m.m[i][j] - m.m[j][i]) *
q[k] = (m.m[i][k] - m.m[k][i]) *
this-&x = q[0];
this-&y = q[1];
this-&z = q[2];
this-&w = q[3];
// 由欧拉角创建四元数
inline CQuaternion(const _Vector3& angle)
float cx = cos(angle.x/2);
float sx = sin(angle.x/2);
float cy = cos(angle.y/2);
float sy = sin(angle.y/2);
float cz = cos(angle.z/2);
float sz = sin(angle.z/2);
this-&w = cx*cy*cz + sx*sy*
this-&x = sx*cy*cz - cx*sy*
this-&y = cx*sy*cz + sx*cy*
this-&z = cx*cy*sz - sx*sy*
// 给定角度和轴创建四元数
inline CQuaternion(_Vector3 anxi, const float& angle)
t.x = anxi.x;
t.y = anxi.y;
t.z = anxi.z;
t.Normalize();
float cosa = cos(angle);
float sina = sin(angle);
this-&x = sina * t.x;
this-&y = sina * t.y;
this-&z = sina * t.z;
// 由旋转四元数推导出矩阵
inline CMatrix4 GetMatrixLH()
float xx = x*x;
float yy = y*y;
float zz = z*z;
float xy = x*y;
float wz = w*z;
float wy = w*y;
float xz = x*z;
float yz = y*z;
float wx = w*x;
ret._11 = 1.0f-2*(yy+zz);
ret._12 = 2*(xy-wz);
ret._13 = 2*(wy+xz);
ret._14 = 0.0f;
ret._21 = 2*(xy+wz);
ret._22 = 1.0f-2*(xx+zz);
ret._23 = 2*(yz-wx);
ret._24 = 0.0f;
ret._31 = 2*(xy-wy);
ret._32 = 2*(yz+wx);
ret._33 = 1.0f-2*(xx+yy);
ret._34 = 0.0f;
ret._41 = 0.0f;
ret._42 = 0.0f;
ret._43 = 0.0f;
ret._44 = 1.0f;
inline CMatrix4 GetMatrixRH()
float xx = x*x;
float yy = y*y;
float zz = z*z;
float xy = x*y;
float wz = -w*z;
float wy = -w*y;
float xz = x*z;
float yz = y*z;
float wx = -w*x;
ret._11 = 1.0f-2*(yy+zz);
ret._12 = 2*(xy-wz);
ret._13 = 2*(wy+xz);
ret._14 = 0.0f;
ret._21 = 2*(xy+wz);
ret._22 = 1.0f-2*(xx+zz);
ret._23 = 2*(yz-wx);
ret._24 = 0.0f;
ret._31 = 2*(xy-wy);
ret._32 = 2*(yz+wx);
ret._33 = 1.0f-2*(xx+yy);
ret._34 = 0.0f;
ret._41 = 0.0f;
ret._42 = 0.0f;
ret._43 = 0.0f;
ret._44 = 1.0f;
// 由四元数返回欧拉角(主要是这个dx api里没有提供)
inline CVector3 GetEulerAngle()
float test = y*z + x*w;
if (test & 0.4999f)
ret.z = 2.0f * atan2(y, w);
ret.y = PIOver2;
ret.x = 0.0f;
if (test & -0.4999f)
ret.z = 2.0f * atan2(y, w);
ret.y = -PIOver2;
ret.x = 0.0f;
float sqx = x *
float sqy = y *
float sqz = z *
ret.z = atan2(2.0f * z * w - 2.0f * y * x, 1.0f - 2.0f * sqz - 2.0f * sqx);
ret.y = asin(2.0f * test);
ret.x = atan2(2.0f * y * w - 2.0f * z * x, 1.0f - 2.0f * sqy - 2.0f * sqx);
开源中国-程序员在线工具:
任何c平台也没有this呀
而且这分明是c++
骚年c和c++是不同的
2楼:g 发表于
引用来自“七液”的评论任何c平台也没有this呀
而且这分明是c++
骚年c和c++是不同的
你的头像是哪个动画片来着,小时候看过,好牛逼的技术宅
3楼:七液 发表于
引用来自“g”的评论引用来自“七液”的评论任何c平台也没有this呀
而且这分明是c++
骚年c和c++是不同的
你的头像是哪个动画片来着,小时候看过,好牛逼的技术宅德克斯特的实验室!牛和鸡,飞天小女警-好肉的片。
开源从代码分享开始
徐学志的其它代码大乐透中5保4旋转矩阵
大乐透在线选号:中5保4旋转矩阵(请选定7至18个基号)
 说明:旋转矩阵是许多彩民朋友采用的投注方法,能实现中5保4(只要选定的号码中含有5个正确的红号,结果肯定有一注含有4个正确的红号),同时以极低的成本实现复试投注的效果。旋转矩阵,很多人使用的、效果真不错的、您的在线超级缩水工具!
| 免责声明
| 设为首页
苏ICP备号-1 如果您有问题或者建议请加我们的客服QQ联系

我要回帖

更多关于 中4保3旋转矩阵 的文章

 

随机推荐