Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Chia đường tròn thành 12 phần bằng nhau trong Java, làm sao lấy được tọa độ để chia?

    Chào tất cả mọi người của forum.
    Mình có một đường tròn với các thông số tọa độ cận trên nhất, tọa độ cận trái nhất, và bán kính đường kính đường tròn.
    Bây giờ mình muốn chia đường tròn thành 12 phần bằng nhau. Vấn đề là mình cần lấy tọa độ của 12 điểm đó trên đường tròn.
    Có bạn nào có thể giúp mình không.
    Cảm ơn nhiều

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn thử cái này nhé!
    Bấm Thanks nếu hài lòng nhé bạn[IMG]images/smilies/smile.png[/IMG]

    Mã:
    //File CircleCoordinate.java// import java.lang.Math;//@Author : ---dongbkhn--class Point {    public double x;    public double y;    public Point(){        x = 0;        y = 0;    }    public Point(double _x, double _y){        x = _x;        y = _y;    }    public void Display(){        System.out.printf("     %-20.20f            %-20.20f",x,y);        System.out.println();    }    public void copyFrom(Point p){        this.x = p.x;        this.y = p.y;    }}public class CircleCoordinate {    private Point hPoint;    private Point lPoint;    private double R;    private Point[] circlePoint;    public CircleCoordinate(){        hPoint = new Point();        lPoint = new Point();        R = 0.0;        circlePoint = new Point[10];    }    public CircleCoordinate(Point _hPoint, Point _lPoint, double _R){        hPoint = new Point();        lPoint = new Point();        this.hPoint.copyFrom(_hPoint);        this.lPoint.copyFrom(_lPoint);        R = _R;        circlePoint = new Point[10];        for (int i=0;i<10;i++)            this.circlePoint[i] = new Point();        this.setCircleCoord(_hPoint, _lPoint, _R);    }    private void setCircleCoord(Point _hPoint, Point _lPoint, double _R){        //Point 1        circlePoint[0].x = this.lPoint.x + 1.5*R;        circlePoint[0].y = this.hPoint.y - R + R*Math.cos(Math.PI/6);        //Point 2        circlePoint[1].x = this.lPoint.x + 2*R - R*Math.cos(Math.PI/6);        circlePoint[1].y = this.hPoint.y - 0.5*R;        //Point 3        circlePoint[2].x = this.lPoint.x + 2*R;        circlePoint[2].y = this.lPoint.y;        //Point 4        circlePoint[3].x = circlePoint[1].x;        circlePoint[3].y = this.hPoint.y - 1.5*R;        //Point 5        circlePoint[4].x = circlePoint[0].x;        circlePoint[4].y = this.hPoint.y - R - R*Math.cos(Math.PI/6);        //Point 6        circlePoint[5].x = this.hPoint.x;        circlePoint[5].y = this.hPoint.y - 2*R;        //Point 7        circlePoint[6].x = this.lPoint.x + 0.5*R;        circlePoint[6].y = this.circlePoint[3].y;        //Point 8        circlePoint[7].x = this.lPoint.x + R - R*Math.cos(Math.PI/6);        circlePoint[7].y = this.circlePoint[4].y;        //Point 9        circlePoint[8].x = this.circlePoint[7].x;        circlePoint[8].y = this.circlePoint[1].y;        //Point 10        circlePoint[9].x = this.circlePoint[6].x;        circlePoint[9].y = this.circlePoint[0].y;    }    public void Display(){        System.out.println("Toa do 12 diem cua hinh tron la: ");        System.out.println("Toa do cao nhat la: ");        this.hPoint.Display();        System.out.println("Toa do trai nhat la: ");        this.lPoint.Display();        System.out.println();        System.out.println("Toa do con lai: ");        for (int i=0;i<10;i++){            System.out.println("Toa do diem "+(i+1));            this.circlePoint[i].Display();        }    }    public static void main(String[] args){        System.out.println("Begin Main Function======");        Point p1 = new Point(10.0,10.0);        Point p2 = new Point(20.0,20.0);        CircleCoordinate Circle = new CircleCoordinate(p2,p1,10.0);        Circle.Display();        System.out.println("End Main Function ======");    }}
    Output:
    Begin Main Function======
    Toa do 12 diem cua hinh tron la:
    Toa do cao nhat la:
    20.00000000000000000000 20.00000000000000000000
    Toa do trai nhat la:
    10.00000000000000000000 10.00000000000000000000

    Toa do con lai:
    Toa do diem 1
    25.00000000000000000000 18.66025403784439000000
    Toa do diem 2
    21.33974596215561000000 15.00000000000000000000
    Toa do diem 3
    30.00000000000000000000 10.00000000000000000000
    Toa do diem 4
    21.33974596215561000000 5.00000000000000000000
    Toa do diem 5
    25.00000000000000000000 1.33974596215561270000
    Toa do diem 6
    20.00000000000000000000 0.00000000000000000000
    Toa do diem 7
    15.00000000000000000000 5.00000000000000000000
    Toa do diem 8
    11.33974596215561300000 1.33974596215561270000
    Toa do diem 9
    11.33974596215561300000 15.00000000000000000000
    Toa do diem 10
    15.00000000000000000000 18.66025403784439000000
    End Main Function ======

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •