论坛风格切换切换到宽版
  • 14450阅读
  • 44回复

如何判断椭圆与圆相交?激光弹问题..... [复制链接]

上一主题 下一主题
发帖
42
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 30楼 发表于: 2009-09-06
嗯,确实没必要这么执着于这个问题。自机和子弹的位置本身就是很离散化的。比如,自机慢速的时候每帧大概也要移动两个像素左右,所以大概差不多就行了,没必要和4次方程过不去。
N/A
离线franniss
发帖
1281
樱饼
0
博丽神社的喝茶券(威望)
1
春度
439
交易币
0
只看该作者 31楼 发表于: 2009-09-06
[attachment=72016]


条激光每个片段的间距图示
[ 此帖被franniss在2009-09-06 02:52重新编辑 ]
从前有一只熊猫,到酒店点了菜就吃,吃完从怀里掏出枪乱放几枪就走了。酒店老板赶快追来!熊猫怒道,你去查字典!老板一翻字典: Panda:an animal,eats shoots and leaves のヮの
离线h5nc
发帖
2724
樱饼
0
博丽神社的喝茶券(威望)
2
春度
738
交易币
0
只看该作者 32楼 发表于: 2009-09-06
相差一两个像素对高级玩家也是很致命的……
顺便管家这个我也有点问题,这个不一定是子弹构成的,而有可能是化为道具时先创造子弹再消除的效果,在YYC年代BEAM是可以逐12帧永久擦弹的,和子弹不同,所以一直觉得不会是子弹构成的……
但其实弹幕素材第一排貌似就是这东西……嘛……无视

0x073《東方弾置場》开发版即将问世
【Leah】引擎问世
同人STG《叛境东方游》已经腰斩
《叛之境界无双篇》已死
发帖
42
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 33楼 发表于: 2009-09-06
你没明白我的意思。再高级的玩家他的自机和子弹也是一帧一帧移动的,他操控再精确也不能比两个像素更精确。由于判定算法带来的误差是远小于两个像素的,所以用近似算法就行了。 同理,激光弹也是,用椭圆用矩形区别都不大。
[ 此帖被隔壁的桌子在2009-09-06 12:29重新编辑 ]
N/A
离线h5nc
发帖
2724
樱饼
0
博丽神社的喝茶券(威望)
2
春度
738
交易币
0
只看该作者 34楼 发表于: 2009-09-06
引用第33楼隔壁的桌子于2009-09-06 12:20发表的  :
你没明白我的意思。再高级的玩家他的自机和子弹也是一帧一帧移动的,他操控再精确也不能比两个像素更精确。由于判定算法带来的误差是远小于两个像素的,所以用近似算法就行了。 同理,激光弹也是,用椭圆用矩形区别都不大。

呐……正常的玩家是要计算偏移和提前偏移的……比如FTG的目押,部分STG要求更加苛刻……是移动与否的问题,而不是是否能移动的问题
如玩家速度3.6像素/帧,目测相距4~5像素,是否移动?
嘛,如果你说是人眼不可及,那是大脑跟不上身体的条件反射而已……
这个玩多了就有体会了……

0x073《東方弾置場》开发版即将问世
【Leah】引擎问世
同人STG《叛境东方游》已经腰斩
《叛之境界无双篇》已死
发帖
42
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 35楼 发表于: 2009-09-07
我前面所说的始终都没有涉及到玩家个人能力的问题,或者可以认为玩家都是超人,或者认为游戏帧率是每秒1帧。
但是你的最小移动距离还是每次2个像素,而精确的和近似的椭圆-圆碰撞判定算法在正常的情况下,误差会远小于2个像素。
N/A
离线h5nc
发帖
2724
樱饼
0
博丽神社的喝茶券(威望)
2
春度
738
交易币
0
只看该作者 36楼 发表于: 2009-09-07
我承认误差小于2像素,但是不同意这个误差可以接受(虽然也不是有什么更好的方法)
我上次说的是移动精确的问题,使用最小移动距离是不可取的,09和095都需要部分时候高速精确移动,商业游戏更多……而且并不是每次你都和最大误差成正面交锋,你不知道一个斜向运动在什么时候会中弹,拿过replay来看发现完全没有碰上,这个就成一大问题了

我的观点在于,让判定区域精确,通过计算机模拟画出子弹真正的判定边缘(某未知四次曲线),再将此图当成BEAM原图放进游戏,这样永远玩家看到什么就是什么

0x073《東方弾置場》开发版即将问世
【Leah】引擎问世
同人STG《叛境东方游》已经腰斩
《叛之境界无双篇》已死
发帖
42
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 37楼 发表于: 2009-09-07
哦,好吧,那是我没明白你。你是想要一个所见即所得的绝对精确的系统,把事情交给能够一劳永逸就解决问题的美工是个好办法。
如果真的要那么精确的话,还有个问题,自机判定大小不一样怎么办?
还有,只是为了BEAM的话用矩形判定不就行了么。仍是先算出来newx,newy,再将他们取绝对值,然后
return ((newx<a+r0ri)&&(newy<b))||((newx<a)&&(newy<b+r0ri))||((newx-a)^2+(newy-b)^2<r0ri^2);
如果矩形判定的情况仅仅是激光才有的话,可以更简易(因为矩形都连在一起,四个角上可以不管)
return (newx<a+r0ri)&&(newy<b+r0ri);
N/A
离线h5nc
发帖
2724
樱饼
0
博丽神社的喝茶券(威望)
2
春度
738
交易币
0
只看该作者 38楼 发表于: 2009-09-07
平方和计算加减代价差不了多少吧…………………………………………但是矩形还要求边上的那个突兀的尖……
你的意思是不是<================>
=是矩形,然后两个三角?
自机判定大小确实有不同的,但判定点大小相同,灵梦的例子是给容易失误的玩家爽的,如果真想设计成高级玩家的玩法(除了固定放置位,YYCEX),那肯定视觉区域不一样,就是判定点的图也不同,至少缩放不同
至今东方系列没出现过不同的时候,所以我也不考虑……

以上全是个人观点,我自己也和自己较劲过很久……嘛……和谐……
[ 此帖被h5nc在2009-09-07 13:09重新编辑 ]

0x073《東方弾置場》开发版即将问世
【Leah】引擎问世
同人STG《叛境东方游》已经腰斩
《叛之境界无双篇》已死
发帖
42
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 39楼 发表于: 2009-09-07
引用第38楼h5nc于2009-09-07 12:48发表的 :
你的意思是不是<================>
=是矩形,然后两个三角?
.......

嗯,差不多。我的想法是激光的一端用那个发光的球球封住,另一端在屏幕外。
至于消耗,我觉得这些都是微不足道的。你的算法里也体现了,距离较远的不可能碰撞的都直接return false;了,真正做判定的没多少子弹。
如果要“所见即所得”的话还是矩形好,要不激光都成了糖葫芦形状了?
个人意见
N/A
离线h5nc
发帖
2724
樱饼
0
博丽神社的喝茶券(威望)
2
春度
738
交易币
0
只看该作者 40楼 发表于: 2009-09-07
大复活是矩形…………………………………………因为尖被更大的尖盖住了

0x073《東方弾置場》开发版即将问世
【Leah】引擎问世
同人STG《叛境东方游》已经腰斩
《叛之境界无双篇》已死
离线水月
发帖
62
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 41楼 发表于: 2009-09-24
感觉不是椭圆啊,橄榄圆,想做的好,参数曲线,切线采样投影。这样速度很费。
用多边形逼近,做多边形碰撞,其实也很费。如果配合好的广义剔除法开销就会在可以接受的范围内。
偶法则是能用多边形就用多边形,实在不行的地方才用曲线
激光,中间是矩形,两头是三角,对缝合边标记一下,看起来就是和椭圆差不多
离线bdnbioaoi
发帖
6
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 42楼 发表于: 2013-01-07
What to do when you get an offer on your house
Most estate agents in the UK advise that it takes between four and six weeks to receive the first offer on a property,abercrombie. When the first offer comes in,hollister, it is important that they let you know of it, even if far short of the asking price.
When they call to advise the offer, they will let you know all the basic details of the seller, their position in the market and, importantly, the value of the offer tabled,hollister co. Rather than look at the amount offered and make a decision,jordan, what counts is the position the buyer's are in.
For example,hollister outlet, the best placed people are usually first time buyers and those with no property of their own to sell. Buyers that have sold subject to contracts being exchanged are also good,hollister deutschland, whilst investment buyers can also move quickly. If an offer comes in from those in such a position, it is worth considering taking the property off the market.
In many cases though,hollister, offers will come from those still in the process of selling,franklin marshall, so the best estate agents will always provide their expertise and guidance into the situation. One thing that is essential,jordan pas cher, is that the property continue to be marketed, viewings conducted and further bids offered.
No matter what the position the buyer is in, it is generally good not to accept the first offer if below the asking price,hollister brazil. This is the time for negotiation and the buyer would have been advised to go in with a low bid,air jordan. As such,abercrombie france, it is good to counter the offer with a slightly adjusted price or,loubouttin pas cher, if confident, maintain the asking price.
As can be seen with our customer reviews at meetmyagent.co,hollister france.uk, the best estate agents will provide vital support and assistance at this time, and ensure the financial position of the buyer has been validated. All these details taken care of, the sale can be completed.
相关的主题文章:

  
   http://sisl.rites.uic.edu/blueprint/wiki/User:Bvjklxbho#The_Most_Effective_Internet_Marketing_for_Small_Business_Tec
  
   http://www.043211.com/a/zhuangbanlei/20120607/20.html
  
   http://ku18.cn/yinshi/shuiguo/201207/1192.html
  

The Voice over IP trade is developing and establishing swiftly as well. Using this type of, plenty of business options for compact or significant businessmen are emerging. One of several hottest VoIP companies currently certainly is the Voice over IP provider business enterprise.
离线geminilan
发帖
1
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 43楼 发表于: 2013-03-21
我这样做是不是在挖坟...我不懂编程...会一点数学,先假定椭圆中心(x0,y0)
用极坐标,y=y0+bsinθ,x=x0+acosθ,dy/dx=-b/a*tanθ(即椭圆切线斜率)则对应圆相切点半径斜率为a*tanθ/b,可算出相切时圆心轨迹...若圆心落在此范围内则相交...
嘛...若是不懂装懂的话敬请见谅...什么算式废速度什么的完全不知道呢...
离线翔輪
发帖
53
樱饼
9300
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 44楼 发表于: 2013-06-30
重新看了一下这个问题,从图像处理的角度来说,假设圆的半径是10像素,对椭圆进行一个最简单的腐蚀运算就可以得到了相交区域了,腐蚀运算强度为当前圆的半径,得到结果为0的区域如果包含圆心则相交,当然前提是把椭圆内所有数据置0,椭圆外所有数据置1,可用1bit的bmp图来储存这个图像(也可以用膨胀来做,椭圆内数据置1,椭圆外数据置0就是膨胀了)。
一般机子CPU的DSP 处理速度都还行吧,移植到掌机平台也可以这么干,只要有DSP处理能力的MCU就行。
Men, like bullets, go farthest when they are smoothest.
快速回复
限100 字节
 
上一个 下一个