找回密码
 点一下
楼主: zyl910

location魔法。location是比GameCache更牛逼的存在

[复制链接]
发表于 2006-4-12 11:12:00 | 显示全部楼层
原帖由 zyl910 于 2006-4-12 11:10 发表


自己写运算函数

去看看C++标准库中的复数类怎么实现的吧


PS:C++真的好牛逼,特别是重载运算符


555~那只好等到很久以后有可能去学c++了
回复

使用道具 举报

 楼主| 发表于 2006-4-12 11:12:51 | 显示全部楼层
原帖由 illlusion 于 2006-4-12 11:06 发表


运算的时候怎么办?


找几本《群》方面的数学书随便看看
你就知道所有运算符都是人定义的
只要根据定义写代码就行了
回复

使用道具 举报

发表于 2006-4-12 11:15:11 | 显示全部楼层
原帖由 zyl910 于 2006-4-12 11:12 发表


找几本《群》方面的数学书随便看看
你就知道所有运算符都是人定义的
只要根据定义写代码就行了


这个我知道阿~~ 我只是不知道计算机语言是怎么表达这些定义的~~所以想从你这里不劳而获:lol还是等以后学c罗
回复

使用道具 举报

 楼主| 发表于 2006-4-12 11:16:56 | 显示全部楼层
原帖由 illlusion 于 2006-4-12 11:10 发表
我对代码里实现这些运算法则很好奇
例如我想运算 S^2 = X^2 + Y^2 + Z^2 + (i*T)^2  这个应该怎么处理?


C++支持重载运算符,可以那样写

但在Jass中,估计得成这样:
S = ComplexPow(ComplexAdd(ComplexAdd(ComplexPow(X, 2), ComplexPow(Y, 2)), ComplexAdd(ComplexPow(Z, 2), ComplexPow(ComplexMul(udg_Complex_I, T), 2))), 0.5)

[ 本帖最后由 zyl910 于 2006-4-12 11:28 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2006-4-12 11:20:16 | 显示全部楼层
原帖由 illlusion 于 2006-4-12 11:15 发表


这个我知道阿~~ 我只是不知道计算机语言是怎么表达这些定义的~~所以想从你这里不劳而获:lol还是等以后学c罗


可是我懒啊
二楼的“代码和演示”本来还想发动大家写的
回复

使用道具 举报

发表于 2006-4-12 11:22:56 | 显示全部楼层
原帖由 zyl910 于 2006-4-12 11:20 发表


可是我懒啊
二楼的“代码和演示”本来还想发动大家写的


理解理解~所以我说等以后我慢慢去学c就ok了
回复

使用道具 举报

发表于 2006-4-12 11:56:07 | 显示全部楼层
S^2 = X^2 + Y^2 + Z^2 + (i*T)^2
嗯 ..
s^2????
这样的话.是不是要用开方了?
回复

使用道具 举报

发表于 2006-4-12 12:55:10 | 显示全部楼层
对 只是这样写更漂亮一些
回复

使用道具 举报

 楼主| 发表于 2006-4-12 12:59:14 | 显示全部楼层
原帖由 zyl910 于 2006-4-12 11:16 发表
[quote]原帖由 illlusion 于 2006-4-12 11:10 发表
我对代码里实现这些运算法则很好奇
例如我想运算 S^2 = X^2 + Y^2 + Z^2 + (i*T)^2  这个应该怎么处理?


C++支持重载运算符,可以那样写

但在Jass中,估计得成这样:
S = ComplexPow(ComplexAdd(ComplexAdd(ComplexPow(X, 2), ComplexPow(Y, 2)), ComplexAdd(ComplexPow(Z, 2), ComplexPow(ComplexMul(udg_Complex_I, T), 2))), 0.5) [/quote]
回复

使用道具 举报

发表于 2006-4-12 14:21:05 | 显示全部楼层
等一下哦………………我觉得用镜头是不是更好呢?毕竟拥有更多的数据可用呢。
回复

使用道具 举报

发表于 2006-4-12 15:16:21 | 显示全部楼层
楼主来完成一套JASS STL??
回复

使用道具 举报

 楼主| 发表于 2006-4-12 18:15:00 | 显示全部楼层
原帖由 麦德三世B 于 2006-4-12 14:21 发表
等一下哦………………我觉得用镜头是不是更好呢?毕竟拥有更多的数据可用呢。


镜头的确不错:
[jass]
native CameraSetupSetField                  takes camerasetup whichSetup, camerafield whichField, real value, real duration returns nothing
native CameraSetupGetField                  takes camerasetup whichSetup, camerafield whichField returns real

constant camerafield CAMERA_FIELD_TARGET_DISTANCE       = ConvertCameraField(0)
constant camerafield CAMERA_FIELD_FARZ                  = ConvertCameraField(1)
constant camerafield CAMERA_FIELD_ANGLE_OF_ATTACK       = ConvertCameraField(2)
constant camerafield CAMERA_FIELD_FIELD_OF_VIEW         = ConvertCameraField(3)
constant camerafield CAMERA_FIELD_ROLL                  = ConvertCameraField(4)
constant camerafield CAMERA_FIELD_ROTATION              = ConvertCameraField(5)
constant camerafield CAMERA_FIELD_ZOFFSET               = ConvertCameraField(6)
[/jass]

当需要一些复杂的数据结构时(比如 B树、空间四叉树等多叉树),可以考虑使用镜头
但对链表、二叉树等简单的数据结构,还是用location省内存一点
回复

使用道具 举报

 楼主| 发表于 2006-4-12 18:20:57 | 显示全部楼层
原帖由 白银の游戏王 于 2006-4-12 15:16 发表
楼主来完成一套JASS STL??


×

Jass中没有模板!

叫 Jass Boost 才对(或 Jass Loki):lol:lol:lol
回复

使用道具 举报

发表于 2006-4-12 18:32:13 | 显示全部楼层
恩,JASS++也行...
回复

使用道具 举报

 楼主| 发表于 2006-4-12 22:45:46 | 显示全部楼层

复数运算法则

原帖由 illlusion 于 2006-4-12 11:02 发表
而要让复数具有 i 这样的运算性质 是不是要在写运算代码的时候定义好一个函数满足这样的规则?



  • z1 + z2 = (x1 + i*y1) + (x2 + i*y2) = (x1 + x2) + i*(y1 + y2)
  • z1 - z2 = (x1 - x2) + i*(y1 - y2)
  • z1 * z2 = (x1 + i*y1) + (x2 + i*y2) = (x1*x2 - y1*y2) + i*(x1*y2 + x2*y1)
  • z1 / z2 = (x1 + i*y1) / (x2 + i*y2)
    = ((x1 + i*y1) * (x2 - i*y2)) / ((x2 + i*y2) * (x2 - i*y2))  // 利用共轭复数
    = ((x1*x2 + y1*y2) + i*(x2*y1 - x1*y2)) / (x2*x2 + y2*y2)
  • z^n = (r * e^(i*th))^n = (r^n) * e^(i*(th * n))
  • ln(z) = ln(r * e^(i*th)) = ln(r) + ln(e^(i*th)) = ln(r) + i*(th + 2*k*Pi)


注意后面的两个都是把复数换成三角形式来计算的(欧拉公式)
回复

使用道具 举报

发表于 2006-4-12 23:45:32 | 显示全部楼层
我说你们能不能说简单点的。搞得我都看不懂了。
回复

使用道具 举报

 楼主| 发表于 2006-4-13 00:31:12 | 显示全部楼层
原帖由 amp34 于 2006-4-12 23:45 发表
我说你们能不能说简单点的。搞得我都看不懂了。


http://www.newebug.com/ebook/other/1422.shtml
古今数学思想 (第一册) M 克莱因
回复

使用道具 举报

发表于 2006-4-13 00:40:25 | 显示全部楼层
- -!
收费下载。。。
我从来没试过。
另外。
楼上的。你上次说的加攻击的那个二进制什么的算法在哪了?
回复

使用道具 举报

发表于 2006-4-13 00:50:17 | 显示全部楼层
原帖由 zyl910 于 2006-4-12 22:45 发表



  • z1 + z2 = (x1 + i*y1) + (x2 + i*y2) = (x1 + x2) + i*(y1 + y2)
  • z1 - z2 = (x1 - x2) + i*(y1 - y2)
  • z1 * z2 = (x1 + i*y1) + (x2 + i*y2) = (x1*x2 - y1*y2) + i*(x1*y2 + x2*y1)
    ...


乘除用指数形式算会不会方便一些
回复

使用道具 举报

 楼主| 发表于 2006-4-13 00:58:38 | 显示全部楼层
原帖由 amp34 于 2006-4-13 00:40 发表
- -!
收费下载。。。
我从来没试过。
另外。
楼上的。你上次说的加攻击的那个二进制什么的算法在哪了?



现在那网站改成收费了?
真的是世风日下

现在想找点资料都难
越来越觉得网络没什么用了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-2 11:27 , Processed in 0.153842 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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