关于三角函数的,在画板上画一个矩形(矩形的左边\顶边\右边\底边的坐标都知道),如何动态的根据角度求矩形中心点到矩形边的距离小弟先行谢过了!!!

解决方案 »

  1.   

    关键你的描述我不是很懂 留个msn 聊聊
      

  2.   

    (x2-x1)2+(y2-y1)2任意两点的距离,坐标系应该是直角,数学题目
      

  3.   

    msn 你好像 不在线喔
      

  4.   

    1。先求得四条边的直线断方程过两点的方程ax+by+c=0
    2。在求的中心点延指定角度的射线方程y=kx+b
    3。然后求射线与各边的交点,最多会与两条边相交
    4。求中心点到各交点的距离,较小的及所求的值
      

  5.   

    “polarman(北极人) ”你说的我还不太明白,角度怎么办,角度我知道,能给个算法吗?
      

  6.   

    “interpb(曾曾胡,深怕情多累美人!!!) ”这边还没有反应,没有收到。
      

  7.   

    x/2cos(θ) ,y/2cos(θ) ,x,y为边长。θ为中心点到对边的垂线和斜线(所求长度)的夹角!
      

  8.   

    "huihui0103()"我现在就是在求这个长度啊,中心点到矩形的长度不知道啊,
      

  9.   

    “huihui0103() ”x/2cos(θ) ,y/2cos(θ)  它求出的是角度还是长度?
      

  10.   

    “huihui0103()”我这个矩形是在画板上面,以矩形中心点为中心,然后画中心点到矩形四条边直线,现在中心点的坐标知道,矩形的坐标也知道,中心点到矩形画线的角度也知道,就是中心点到矩形四条边的长度不知道。这个长度是中心点到矩形四条边任意位置的,就是中心点到矩形一圈的位置。
      

  11.   

    “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°,且此边为右边或下边;
    那么射线与此边相交,交点极为所求点,然后利用两点间距离方程求此点到中心点的距离