坐标转换的总结

获得角度的代码
 <span style="white-space:pre">	</span>public static getAnagle(point: egret.Point): number{
            if(point.x == 0 && point.y > 0){
                return Math.PI * 0.5;
            }else if(point.x == 0 && point.y < 0){
                return Math.PI * 1.5;
            }else if(point.x > 0 && point.y >= 0){
                return Math.atan(Math.abs(point.y/point.x));
            }else if(point.x < 0 && point.y >= 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI * 0.5);
            }else if(point.x > 0 && point.y < 0){
                return (Math.atan(Math.abs(point.y / point.x)) + 1.5 * Math.PI);
            } else if(point.x < 0 && point.y < 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI);
            }
            return 0;
        }
世界坐标系 转换为 地图坐标系
<pre name="code" class="javascript">public static worldPosToBattleMapPos(offencePos: egret.Point,defencePos: egret.Point,battleMapPos: egret.Point): egret.Point{
            var distance = egret.Point.distance(defencePos,offencePos);
            var angle1 = NewBattleUtility.getAnagle(new egret.Point(defencePos.x - offencePos.x,defencePos.y - offencePos.y));
            
            var newDistance = egret.Point.distance(battleMapPos,offencePos);
            var angle2 = NewBattleUtility.getAnagle(new egret.Point(battleMapPos.x - offencePos.x,battleMapPos.y - offencePos.y));
            var angle = angle2 - angle1;
            var dis = newDistance / distance * 100;
            var x = dis * Math.cos(angle);
            var y = dis * Math.sin(angle);
            return new egret.Point(x,y);
        }

地图坐标系 转换为 世界坐标系
 
<pre name="code" class="javascript">public static battleMapPosToWorldPos(offencePos: egret.Point,defencePos: egret.Point,mapPos: egret.Point): egret.Point{
            /*
            let x = offencePos.x + mapPos.x / 100 * (defencePos.x - offencePos.x);
            let y = offencePos.y + mapPos.x / 100 * (defencePos.y - offencePos.y);

            return new egret.Point(x,y);*/
            
            var distance = egret.Point.distance(defencePos,offencePos);//战场的长度
            var angle1;
            if((defencePos.x - offencePos.x) == 0){
                angle1 = Math.PI / 2;
            }else{
                angle1 = Math.atan((defencePos.y - offencePos.y) / (defencePos.x - offencePos.x));
            }
            var angle2
            if(mapPos.x == 0){
                angle2 = Math.PI / 2;
            }else{
                angle2 = Math.atan(mapPos.y * 5 / mapPos.x);
            }
            
            if (defencePos.x > offencePos.x) {
                
                if (defencePos.y > offencePos.y) {
                    //第一象限
                    //egret.log("battl 1pt: " + angle1);
                } else {
                    //第四象限
                    //egret.log("battl 4pt: " + angle1);
                    angle1 = angle1 + Math.PI*2;
                }
                
            } else {
                
                if (defencePos.y > offencePos.y) {
                    //第二象限
                    //egret.log("battl 2pt: " + angle1);
                    
                    angle1 = angle1 + Math.PI;
                } else {
                    //第三象限
                    //egret.log("battl 3pt: " + angle1);
                    angle1 = angle1 + Math.PI;
                }
                
            }
            
            var newDistance = distance / 100 * Math.sqrt(Math.pow(mapPos.x,2) + Math.pow(mapPos.y,2));
            var x = newDistance * Math.cos(angle1 + angle2);
            var y = newDistance * Math.sin(angle1 + angle2);
            //egret.log("battl x,y: " + x.toString() + "," + y.toString());
            let pt = egret.Point.polar(newDistance,(angle1 + angle2));
            //egret.log("battl pt: " + pt.toString());
            
            pt.x = offencePos.x + pt.x;
            pt.y = offencePos.y + pt.y;
            //egret.log("battl pt: " + pt.toString());
            let pt1 = new egret.Point(offencePos.x + x,offencePos.y + y);
            //egret.log("battl pt1: " + pt1.toString());
            return pt1;
            
        }



                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: coord官网是一个用于转换笑脸坐标的网站。在这个网站上,我们可以通过输入一个笑脸的坐标,然后将其转换为其他格式的笑脸坐标。 笑脸坐标是用来描述笑脸的位置和形状的一种表示方法。它通常使用一组数字来表示笑脸的眼睛、嘴巴等各个部分的位置和大小。 通过coord官网,我们可以将一个笑脸坐标从一种格式转换为另一种格式。这样就可以方便地在不同的平台或应用中使用笑脸坐标。 除了笑脸坐标的转换,coord官网还提供了一些其他有用的功能。比如,它可以将图片中的笑脸自动识别并提取出其坐标。这样就可以轻松地对图片中的笑脸进行分析和处理。 总之,coord官网是一个非常方便的工具,可以帮助我们在不同的应用中轻松地转换笑脸坐标。无论是在设计笑脸表情包,还是在进行人脸识别等应用中,coord官网都是一个值得推荐的网站。 ### 回答2: 笑脸坐标转换是一个由 coord 官网提供的工具,它可以将笑脸的坐标转换为对应的数字坐标。笑脸坐标转换工具使用简便,只需输入笑脸的坐标,即可获得笑脸所在位置的准确坐标。 使用该工具需要首先进入 coord 官网,在官网导航栏中选择笑脸坐标转换工具。进入工具后,我们可以看到一个输入框,输入框中可以输入笑脸的坐标。笑脸的坐标可以是一组由角度和半径组成的坐标,也可以是其他形式的坐标。 当我们在输入框中输入了笑脸的坐标后,点击转换按钮,工具会通过计算和算法将笑脸的坐标转换为对应的数字坐标。转换后的数字坐标可以作为参考,用于将笑脸的位置标记在图表或地图上。 笑脸坐标转换工具的应用领域较为广泛。比如,在地理信息系统中,可以使用该工具将笑脸的坐标转换为地图上的位置,方便进行地图分析和定位。在数据可视化中,也可以利用该工具将笑脸的坐标转换为图表上的位置,以更形象地呈现数据。 综上所述,笑脸坐标转换工具是 coord 官网提供的一项实用工具,能够将笑脸的坐标转换为数字坐标。使用该工具能够方便地在图表或地图上标记笑脸的位置,具有广泛的应用价值。 ### 回答3: coord官网是一个提供笑脸坐标转换的网站。笑脸坐标转换是将笑脸在一个平面上的位置转换成具体的坐标数值的过程。 这个网站通过简单的操作步骤,可以帮助用户将笑脸在平面上的位置转换成坐标数值。首先,用户需要在网站上上传一张包含笑脸的图片。然后,网站会使用图像识别技术来识别出笑脸所在的位置。接下来,用户可以看到笑脸在平面上的位置标记,并且网站会显示笑脸的坐标数值。用户也可以选择导出笑脸坐标,以便在其他软件或设备中使用。 这个网站的使用非常简单方便,即使对于没有技术背景的人来说也能够轻松上手。同时,网站还提供了一些附加功能,比如对笑脸进行缩放、旋转、翻转等操作,以及对笑脸进行颜色、透明度等属性的调整。这些功能可以帮助用户更好地定位和调整笑脸的位置。 总结来说,coord官网是一个实用的笑脸坐标转换工具,可以帮助用户将笑脸在平面上的位置转换成具体的坐标数值,并且提供了一些附加功能来进行更精细的调整。无论是对于学习、娱乐还是工作等方面,这个网站都能够提供便捷的笑脸坐标转换服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值