特别紧急!在画板上画一个矩形,如何根据角度动态的求矩形中心点到矩形的距离。小弟先行谢过了!!! 关于三角函数的,在画板上画一个矩形(矩形的左边\顶边\右边\底边的坐标都知道),如何动态的根据角度求矩形中心点到矩形边的距离小弟先行谢过了!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关键你的描述我不是很懂 留个msn 聊聊 (x2-x1)2+(y2-y1)2任意两点的距离,坐标系应该是直角,数学题目 msn 你好像 不在线喔 1。先求得四条边的直线断方程过两点的方程ax+by+c=02。在求的中心点延指定角度的射线方程y=kx+b3。然后求射线与各边的交点,最多会与两条边相交4。求中心点到各交点的距离,较小的及所求的值 “polarman(北极人) ”你说的我还不太明白,角度怎么办,角度我知道,能给个算法吗? “interpb(曾曾胡,深怕情多累美人!!!) ”这边还没有反应,没有收到。 x/2cos(θ) ,y/2cos(θ) ,x,y为边长。θ为中心点到对边的垂线和斜线(所求长度)的夹角! "huihui0103()"我现在就是在求这个长度啊,中心点到矩形的长度不知道啊, “huihui0103() ”x/2cos(θ) ,y/2cos(θ) 它求出的是角度还是长度? “huihui0103()”我这个矩形是在画板上面,以矩形中心点为中心,然后画中心点到矩形四条边直线,现在中心点的坐标知道,矩形的坐标也知道,中心点到矩形画线的角度也知道,就是中心点到矩形四条边的长度不知道。这个长度是中心点到矩形四条边任意位置的,就是中心点到矩形一圈的位置。 “polarman(北极人) ”你说的我还不太明白,角度怎么办,角度我知道,能给个算法吗?===============================================================================假设中心点为(x0,y0),角度为a,那么k=tan(a)代入斜率方程y0=tan(a)*x0 + b可以解出b这样就可以求出这条射线的方程(其实线段方程,射线方程都是直线方程加上一些限制条件)然后可转换成标准方程Ax+By+C=0的形式===============================================================================另外,过两点求直线方程的方法(以此方法求各边的方程)如下:假设两点为:(x1,y1),(x2,y2)double A,B,C;if(x1 == x2 && y1==y2) return; double p1, p2; p1 = x1 * y2; p2 = x2 * y1; if(p1 == p2){ if (x1 == 0) { if (x2 == 0) { A = 1; B = 0; C = 0; }else if (y1 == 0) { A = y2; B = -x2; C = 0; } }else if(y2 == 0){ if (y1 == 0) { A = 0; B = 1; C = 0; }else if (x2 == 0) { A = -y1; B = x1; C = 0; } } }else{ A = (y1 - y2) / (p1 - p2); C = 1; if (y1 == 0) { if (y2 == 0) { B = 1; C = 0; }else{ B = -(A * x2 + 1) / y2; } }else{ B = -(A * x1 + 1) / y1; } }===============================================================================两条直线的交点这样求:假设两条直线的标准方程分别为:A1x+B1y+C1=0, A2x+B2y+C2=0Point pt = new Point();//定义交点 pt.x = (C1 / B1 - C2 / B2) / (A2 / B2 - A1 / B1);pt.y = -(A1 / B1) * pt.x - (C1 / B1);知道射线与某条边所在的直线的交点后判断在不在相应的边上即可假设某条边的两个端点分别为(x1,y1),(x2,y2)如果1)pt.x在x1与x2之间且pt.y在y1与y2之间2)角度在0°~90°,且此边为右边或上边; 或角度在90°~180°,且此边为左边或上边; 或角度在180°~270°,且此边为左边或下边; 或角度在270°~360°,且此边为右边或下边;那么射线与此边相交,交点极为所求点,然后利用两点间距离方程求此点到中心点的距离 n&n+1|n+2^n+3=? swing 中哪个类可以显示从数据库中查询的二维表 有比较好的C++基础,学JAVA 有没有谁有建议? 抽象方法使用中的一个简单问题 100分 Swing+Servlet+DB设计问题! 请教关于weblogic8.1+JBX的配置问题,最好是完整文档,能用结贴 一段列表筐代码不知道能不能短一些(请高手帮忙) 这段代码有问题吗 请问关于路径设置的问题 为什么我装oracle后,不能登陆进去,说是没有监听!我该怎么办? tomcat启动时出错!高手帮忙 求一个简短的应用 数学公式 的加密算法
2。在求的中心点延指定角度的射线方程y=kx+b
3。然后求射线与各边的交点,最多会与两条边相交
4。求中心点到各交点的距离,较小的及所求的值
===============================================================================
假设中心点为(x0,y0),角度为a,那么k=tan(a)代入斜率方程
y0=tan(a)*x0 + b
可以解出b
这样就可以求出这条射线的方程(其实线段方程,射线方程都是直线方程加上一些限制条件)
然后可转换成标准方程Ax+By+C=0的形式===============================================================================
另外,过两点求直线方程的方法(以此方法求各边的方程)如下:
假设两点为:(x1,y1),(x2,y2)double A,B,C;if(x1 == x2 && y1==y2)
return;
double p1, p2;
p1 = x1 * y2;
p2 = x2 * y1;
if(p1 == p2){
if (x1 == 0) {
if (x2 == 0) {
A = 1; B = 0; C = 0;
}else if (y1 == 0) {
A = y2; B = -x2; C = 0;
}
}else if(y2 == 0){
if (y1 == 0) {
A = 0; B = 1; C = 0;
}else if (x2 == 0) {
A = -y1; B = x1; C = 0;
}
}
}else{
A = (y1 - y2) / (p1 - p2); C = 1;
if (y1 == 0) {
if (y2 == 0) {
B = 1; C = 0;
}else{
B = -(A * x2 + 1) / y2;
}
}else{
B = -(A * x1 + 1) / y1;
}
}===============================================================================
两条直线的交点这样求:
假设两条直线的标准方程分别为:
A1x+B1y+C1=0, A2x+B2y+C2=0Point pt = new Point();//定义交点
pt.x = (C1 / B1 - C2 / B2) / (A2 / B2 - A1 / B1);
pt.y = -(A1 / B1) * pt.x - (C1 / B1);知道射线与某条边所在的直线的交点后判断在不在相应的边上即可
假设某条边的两个端点分别为(x1,y1),(x2,y2)
如果
1)pt.x在x1与x2之间且pt.y在y1与y2之间
2)角度在0°~90°,且此边为右边或上边;
或角度在90°~180°,且此边为左边或上边;
或角度在180°~270°,且此边为左边或下边;
或角度在270°~360°,且此边为右边或下边;
那么射线与此边相交,交点极为所求点,然后利用两点间距离方程求此点到中心点的距离