• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>AS基础篇>AS 3.0>文章内容
  • as3求直线与圆的交点坐标

  • 来源:http://hi.baidu.com/flash%5Fas3 作者:赵成业 2007-08-13 【

var Arr:Array=new Array();
Arr.push({m_type:null});//0
Arr.push({m_type:"point",m_x:1,m_y:1});//1
Arr.push({m_type:"point",m_x:2,m_y:2});//2
Arr.push({m_type:"line2",m_p1:1,m_p2:2});   //3
Arr.push({m_type:"point",m_x:1,m_y:1});//4
Arr.push({m_type:"point",m_x:0,m_y:1});//5
Arr.push({m_type:"circle",m_center:4,m_point:5});//6
//以上是圆6和线3
 
chuizu(3,6);

function chuizu(line:Number,circle:Number){

//圆的两个控制点信息

var circle_center:Number =Arr[circle].m_center;
var circle_point:Number =Arr[circle].m_point;

var circle_center_x:Number =Arr[circle_center].m_x;
var circle_center_y:Number =Arr[circle_center].m_y;
var circle_point_x:Number =Arr[circle_point].m_x;
var circle_point_y:Number =Arr[circle_point].m_y;

//线的两个控制点信息

var line_p1:Number =Arr[line].m_p1;
var line_p2:Number =Arr[line].m_p2;

var line_p1_x:Number =Arr[line_p1].m_x;
var line_p1_y:Number =Arr[line_p1].m_y;
var line_p2_x:Number =Arr[line_p2].m_x;
var line_p2_y:Number =Arr[line_p2].m_y;

//线k b

var line_k:Number =(line_p2_y-line_p1_y)/(line_p2_x-line_p1_x);
var line_b:Number =line_p1_y-line_k*line_p1_x;
//半径

var circle_radius:Number =Math.sqrt((circle_center_x-circle_point_x)*(circle_center_x-circle_point_x)+(circle_center_y-circle_point_y)*(circle_center_y-circle_point_y))
//计算
var A:Number =1+line_k*line_k;
var B:Number =-2*circle_center_x+2*line_k*line_b-2*line_k*circle_center_y;
var C:Number =circle_center_x*circle_center_x+(line_b-circle_center_y)*(line_b-circle_center_y)-circle_radius*circle_radius;
var DELTA:Number =B*B-4*A*C;
var x1:Number =(-B+Math.sqrt(DELTA))/(2*A);
var x2:Number =(-B-Math.sqrt(DELTA))/(2*A);
var y1:Number =line_k*x1+line_b;
var y2:Number =line_k*x2+line_b;
if (DELTA>0){
trace("point1:"+x1,y1,"point2:"+x2,y2);
}else if (DELTA==0){
trace("point:"+x1,y1);
}else{
trace("无交点")
}
}




上一篇:as3求两直线交点坐标   下一篇:as3学习-利用分隔符对字符串的分割
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)