游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6834|回复: 14

关于泰勒级数开平方,谁来帮帮我?

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-11-20 17:08:00 | 显示全部楼层 |阅读模式
今天在《Windows游戏编程大师技巧》中看到了一段求两点间距离的代码。代码中用了一个数学技巧,就是用麦克劳林级数简化了计算两点间距离时的开方运算。但是我怎么也看不明白代码到底如何运用了麦克劳林级数。特在此请教大家,谢谢!代码如下:

//求a,b的最值
#define  MIN( a, b )   ( ( a < b ) ? a : b )
#define  MAX( a, b )  ( ( a > b ) ? a : b )

//将a,b的值交换
#define  SWAP( a, b, t )  ( t = a; a = b; b = t; )

//求a的绝对值
#define ABS( a )  ( ( a > 0 ) ? a : ( -a ) )

//-------------------------------------------------------
// Name: Fast_Distance_2D()
// Desc:  计算2D平面任意点到原点的距离
//-------------------------------------------------------
int  Fast_Distance_2D( int  x, int  y )
{
    //求绝对值
    x = ABS( x );
    y = ABS( y );

    //求x,y中最小那个
    int  mn = MIN( x, y );

    //计算并返回点( x, y )到原点的距离
    return( x + y - ( mn >> 1 ) - ( mn >> 2 ) + ( mn >> 4 ) );
}



[em7]

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2006-11-20 17:55:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2006-11-20 18:04:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

函数的参数是相对值,在这里是以(0,0)点为起点,调用的话应该是(Fast_Distance_2D(x1-x2,y1-y2);)

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2006-11-21 00:05:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

哈哈,要是让你看卡马克的开方函数你会更晕。。。

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-11-21 00:19:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

qu 去看quake里的开平方吧!!!! 据说是比c库中的sqrt快些

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2006-11-21 15:46:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

二元泰勒级数

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-11-21 23:21:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

命名就是1元

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2006-11-21 23:55:00 | 显示全部楼层

Re: Re:关于泰勒级数开平方,谁来帮帮我?

lwevil: Re:关于泰勒级数开平方,谁来帮帮我?

qu 去看quake里的开平方吧!!!! 据说是比c库中的sqrt快些


我的回复又被华丽的忽略了。。。 [em11]

0

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2006-11-24 23:07:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

我有 没看明白

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-12-4 12:38:00 | 显示全部楼层

Re:关于泰勒级数开平方,谁来帮帮我?

不明白 "return( x + y - ( mn >> 1 ) - ( mn >> 2 ) + ( mn >> 4 ) );"
是什么意思.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 19:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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