chunye19950806 2015-05-26 10:27 采纳率: 50%
浏览 5874
已采纳

java如何画圆弧!!!!

知道一个圆弧的两个端点和终点还有角度,怎么将这个圆弧画出来?用java,说出具体的方法及过程,谢谢了!

  • 写回答

8条回答

  • JonsonJiao 2015-05-27 03:46
    关注

    想了想你这个问题,你这个需要解方程来确定圆弧所在圆或椭圆的方程的,而这个实现起来是比较麻烦的,我试着写了一下,没有写完,需要考虑的条件很多,有些复杂,先说下思路吧:
    1、先假设三个点落在圆上,圆相比椭圆要好一些;
    1)根据三个点的坐标求出圆心和半径来
    因为知道三个点的坐标,根据圆的方程是可以求出方程中的三个参数的,如果直接用圆方程求会比较麻烦,涉及到二次运算;
    可以使用另一种方式,即起点和中点连线的中垂线与终点和中点连线的中垂线相交就是圆心了。
    求出圆心后就能知道半径了,这样就确定了圆的方程,比如是(x-a)*(x-a)+(y-b)*(y-b)=r*r,a,b是圆心,r是半径
    2)其实这时候要判断假设的对不对了,如果假设圆正确,那么圆心与两个端点的夹角与给定的圆弧对应角度应该是一样的,否则不一样
    已知圆心O(a,b)与两个端点(如A(x1,y1)和B(x2,y2))的坐标,可以使用余弦定理求出角AOB的度数,这个不难请自行百度。
    2-1假设通过检测的话说明三个点就是在圆上,
    2-1-1)有了圆的方程就知道圆的外接矩形的左上角坐标和宽度、高度了
    左上角坐标x=a-r,y=b-r,width=r+r,height=r+r;
    需要这些参数是因为画弧线的方法中需要使用到这些参数。
    2-1-2)求起始的角度
    起始角度也是绘制圆弧所需要的参数,这个的计算可以通过起始端点与圆心连线的斜率来求,这个里面也要分情况,需要说明的是在Java中绘制圆弧的起始角度0表示水平正值方向,
    比如起始端点为(1,0),那么起始角度为0,起始端点为(0,1),那么起始角度为90,这里用度表示,使用中也是。
    注意起始端点在四个象限分别处理起始的角度。
    2-1-3)求终止角度,有了起始角度加上给定的弧度对应角度就是终止角度了。
    2-1-4)绘制
    最后调用drawArc(x,y,width,height,startAngle,endAngle)就可以绘制了。

    2-2)假设没有通过检测,说明三个点不在圆上,需要计算椭圆的方程了。
        这个没有具体的写代码,先看看上面的是否符合要求吧。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?