在mc中将三角函数精确到小数后六位
minecraft吧
全部回复
仅看楼主
level 14
tg792 楼主
也算是一个新的尝试吧
2018年08月01日 12点08分 1
level 14
tg792 楼主
之前做过用cordic粗略算sin和cos的,但精度不是很高,其中限制因素最大的还是cb本身记分板分数的局限性,只能储存整数,最大值不能超过2^31-1,因此在进行一些高精度运算时会遇到比较大的限制问题
2018年08月01日 12点08分 2
level 14
tg792 楼主
基于这个因素,我花了一些时间在原来记分板的基础上开发了新的位运算架构函数,以一个变量来表示一个数位。在经过一番码指令以后我完成了addc,subb,mul,div四个函数,支持加减乘除运算,同时可运算位数提高到了20位
2018年08月01日 12点08分 3
level 14
tg792 楼主
在完成新位运算架构的基础上,我将原先的三角运算函数重新编写,并且修正了之前的一些误差因素,大大提高了精确度,目前小数后五位可以保证完全正确,第六位的误差在-1~+1之间。
2018年08月01日 12点08分 4
level 14
tg792 楼主
下面发一些实际演算结果
2018年08月01日 12点08分 5
level 14
tg792 楼主
2018年08月01日 12点08分 6
level 14
tg792 楼主
2018年08月01日 12点08分 7
level 14
tg792 楼主
2018年08月01日 12点08分 8
level 14
tg792 楼主
函数内部部分展示
2018年08月01日 12点08分 9
level 14
tg792 楼主
主要运算思路就是通过cordic算法迭代算出sin和cos的比值,再利用牛顿迭代法求出sin和cos的平方和再开根号的值,最后分别相除就可以获得最终答案了,本身其实不难,就是指令写起来因为是一位位处理的相对会麻烦点。
2018年08月01日 12点08分 10
level 14
tg792 楼主
这也是一次新的尝试吧,以往都是在系统自带的记分板计算指令上直接进行计算,这一次开发了新的架构并且也比较成功,其实这个架构还是有很多不完善的地方,我也没做正负号的符号位判定,导致只能用来进行正数的运算,同时运算指令写得也很复杂,执行起来比较慢,这些在以后肯定要一一进行优化
2018年08月01日 12点08分 11
level 14
tg792 楼主
或者说可能也会开发二进制的运算架构,因为二进制个人感觉执行起来更具有优越性
2018年08月01日 12点08分 12
level 14
tg792 楼主
来个人啊[滑稽],开发写指令颇为不易[滑稽]
2018年08月01日 12点08分 13
level 14
tg792 楼主
自顶~
2018年08月01日 12点08分 14
level 10
不明觉厉,顺便顶一下[真棒]
2018年08月01日 12点08分 15
谢谢[玫瑰]
2018年08月01日 12点08分
问个问题,理论上能在我的世界看视频吗?[疑问]
2018年08月01日 12点08分
回复 晴天阴雨不断 :最简单就是用动态材质了,不过数据体积巨大无比。。。现在来看比较不错的就是用命令函数执行逐帧,帧与帧之间的延时可以用循环代码来实现
2018年08月01日 12点08分
谢谢[太开心]
2018年08月01日 12点08分
1 2 3 4 尾页