找回密码
 点一下
查看: 1673|回复: 5

如何把抛物线的公式带入sc2触发里

[复制链接]
发表于 2015-9-8 16:57:06 | 显示全部楼层 |阅读模式
本帖最后由 mic 于 2015-9-8 16:59 编辑

要在地形里画一条抛物线,如何把抛物线公式带入到触发器?
还有各种曲线方程公式,应该如何带入呢?
发表于 2015-9-9 12:50:47 | 显示全部楼层
星际2 支持立体直角坐标系,平面直角坐标系,角坐标系。所以你可以很方便的求的抛物线上任意一点的坐标(假如你知道方程的话,这需要高中解析几何,至少要初中函数的知识)。
但问题是,你这提问太笼统了,你要如何画出这条抛物线?用模型拼么?还是只是得到坐标就好?如果你能描述的更详细些,或许我能帮到些忙。
回复

使用道具 举报

 楼主| 发表于 2015-9-11 20:37:40 | 显示全部楼层
yxxiaobin 发表于 2015-9-9 12:50
星际2 支持立体直角坐标系,平面直角坐标系,角坐标系。所以你可以很方便的求的抛物线上任意一点的坐标(假 ...

搞出坐标来,然后单位或者装饰物.打个比方:世界地图轮廓...
回复

使用道具 举报

发表于 2015-9-12 09:02:56 | 显示全部楼层
本帖最后由 yxxiaobin 于 2015-9-12 14:44 编辑

那么你使用函数就好了。抛物线的公式是y=ax^2+bx+c  (a≠0,a、b、c为常数),也可以写成y=a(x+b)^2+c  (a≠0,a、b、c为常数),前者是标准式,后者更直观,所以推荐新手使用。
解释下第二个公式:
  y=a(x+b)^2+c  (a≠0,a、b、c为常数),虽然说a、b、c为常数,但是在实际应用中,这些值通常也是通过某种方法计算出来的,所以他们通常也是使用变量,而不是直接写一个值上去。
  a的绝对值决定缩放系数,绝对值越大,抛物线越“瘦”,正负性影响抛物线的开口方向,为正时,开口向y轴正方向;为负时开口向y轴负方向,在实际应用中,这个值多数情况下只需要取正值,具体后边会提到原因。需要注意的是a不能为0,否则将会画出一条直线。
  b是抛物线的横移值,当b为0时,抛物线的顶点在y轴上。当b为正数时,抛物线向x轴负方向移位,反之向x轴正方向移位。这个值在应用时的意义:抛物线顶点的横坐标的相反数。因为我们的抛物线可能出现在地图任何位置,而顶点不一定必须在(0,0)点上,所以得需要知道顶点坐标才行,这个坐标是我们根据需要直接指定的。假如我们指定顶点坐标为(25,70),那么顶点的X坐标xp=25,b=-xp=-25。但是在实际应用时,我们这样做就会导致需要考虑x的起始和终止值也会因为偏移而增加对应的量,也就是说,你本来打算画-10到10之间的曲线,加上x的偏移值,就要画15到35之间的曲线了,这很不直观,而且这样一加一减,不如将这个值取0,直接将公式写作y=ax^2+c。这样考虑区间就会更简单。
  c是抛物线的纵移值,当c为0时,抛物线的顶点在x轴上。当c为正数时,抛物线向y轴正方向移位,反之向y轴负方向移位。这个值在应用时的意义:抛物线顶点的纵坐标。比如指定顶点坐标为(25,70),那么c就取值70。
  每一个x都对应且只对应一个y值,但一个y值可能对应两个x。不过每一对(x,y)值不是我们要找的点,因为在上边我们把b值给省去了,没有考虑横移问题,在这里需要补上横移,所以要找的点的坐标应该是(x+xp,y)。
  这样一来就简单了:我们要做的就是给x一个初始值(认为抛物线的定点在y轴上,即顶点处x=0),然后按一定规律增加或减少x的值(比如定义x初始值为-10,x每次自加1),并把以此把值代入到上式中,就能求出对应的y值,然后(x+xp,y)就是我们要求的坐标了。如果只需要求其中一支,则让x从0开始或截止到0即可。

按照上边的方法得出的抛物线,开口总是向y轴正方向的。但有时我们需要旋转它,让它的开口朝向某指定方向。这时候有三种方案可以解决:
1.旋转坐标系,并推导对应的公式。但是这很费事,所以不推荐。
2.按上法求出直立状态下的坐标后,将坐标转换成点,然后求出该点到顶点的距离,最后利用极点偏移点这个函数进行旋转。这个过程也比较繁琐,但是容易理解,新人的话推荐使用。
3.利用点的反射,可以直接进行点旋转,而不必去求距离。但是这样一来,推导公式需要很清晰的思维,需要有一定数学知识,推荐对自己数学头脑有信心的同学使用。当然你也可以直接抄现成的,反正这东西公式是固定的,别抄错了就好。

实际应用中基本上都是先求直立坐标,然后在旋转的方案。所以在上边才说a值只需要取正值,如果我们需要开口向下的抛物线,一般也是通过旋转得到的。因为通常为了方便使用,这个函数是单独写出来的,你一定要弄一个不带旋转的出来,还要另写一个,更费事。

附上一个演示图 抛物线.SC2Map (22.3 KB, 下载次数: 21)

预览下效果
1.jpg
回复

使用道具 举报

 楼主| 发表于 2015-9-16 19:59:28 | 显示全部楼层
yxxiaobin 发表于 2015-9-12 09:02
那么你使用函数就好了。抛物线的公式是y=ax^2+bx+c  (a≠0,a、b、c为常数),也可以写成y=a(x+b)^2+c  (a≠ ...

十分感谢,写的很清楚!
对新手帮助很大.
回复

使用道具 举报

发表于 2015-9-16 20:53:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 13:12 , Processed in 0.298455 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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