Từ 1 tới 2 trên tổng số 2 kết quả

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

  1. #1
    Ngày gia nhập
    12 2011
    Bài viết
    15

    Mặc định 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 gia nhập
    05 2009
    Bài viết
    3

    Bạn thử cái này nhé!
    Bấm Thanks nếu hài lòng nhé bạn
    Java Code:
    1. //File CircleCoordinate.java
    2. // import java.lang.Math;
    3. //@Author : ---dongbkhn--
    4. class Point {
    5.     public double x;
    6.     public double y;
    7.     public Point(){
    8.         x = 0;
    9.         y = 0;
    10.     }
    11.     public Point(double _x, double _y){
    12.         x = _x;
    13.         y = _y;
    14.     }
    15.     public void Display(){
    16.         System.out.printf("     %-20.20f            %-20.20f",x,y);
    17.         System.out.println();
    18.     }
    19.     public void copyFrom(Point p){
    20.         this.x = p.x;
    21.         this.y = p.y;
    22.     }
    23. }
    24. public class CircleCoordinate {
    25.     private Point hPoint;
    26.     private Point lPoint;
    27.     private double R;
    28.     private Point[] circlePoint;
    29.     public CircleCoordinate(){
    30.         hPoint = new Point();
    31.         lPoint = new Point();
    32.         R = 0.0;
    33.         circlePoint = new Point[10];
    34.     }
    35.     public CircleCoordinate(Point _hPoint, Point _lPoint, double _R){
    36.         hPoint = new Point();
    37.         lPoint = new Point();
    38.         this.hPoint.copyFrom(_hPoint);
    39.         this.lPoint.copyFrom(_lPoint);
    40.         R = _R;
    41.         circlePoint = new Point[10];
    42.         for (int i=0;i<10;i++)
    43.             this.circlePoint[i] = new Point();
    44.         this.setCircleCoord(_hPoint, _lPoint, _R);
    45.     }
    46.     private void setCircleCoord(Point _hPoint, Point _lPoint, double _R){
    47.         //Point 1
    48.         circlePoint[0].x = this.lPoint.x + 1.5*R;
    49.         circlePoint[0].y = this.hPoint.y - R + R*Math.cos(Math.PI/6);
    50.         //Point 2
    51.         circlePoint[1].x = this.lPoint.x + 2*R - R*Math.cos(Math.PI/6);
    52.         circlePoint[1].y = this.hPoint.y - 0.5*R;
    53.         //Point 3
    54.         circlePoint[2].x = this.lPoint.x + 2*R;
    55.         circlePoint[2].y = this.lPoint.y;
    56.         //Point 4
    57.         circlePoint[3].x = circlePoint[1].x;
    58.         circlePoint[3].y = this.hPoint.y - 1.5*R;
    59.         //Point 5
    60.         circlePoint[4].x = circlePoint[0].x;
    61.         circlePoint[4].y = this.hPoint.y - R - R*Math.cos(Math.PI/6);
    62.         //Point 6
    63.         circlePoint[5].x = this.hPoint.x;
    64.         circlePoint[5].y = this.hPoint.y - 2*R;
    65.         //Point 7
    66.         circlePoint[6].x = this.lPoint.x + 0.5*R;
    67.         circlePoint[6].y = this.circlePoint[3].y;
    68.         //Point 8
    69.         circlePoint[7].x = this.lPoint.x + R - R*Math.cos(Math.PI/6);
    70.         circlePoint[7].y = this.circlePoint[4].y;
    71.         //Point 9
    72.         circlePoint[8].x = this.circlePoint[7].x;
    73.         circlePoint[8].y = this.circlePoint[1].y;
    74.         //Point 10
    75.         circlePoint[9].x = this.circlePoint[6].x;
    76.         circlePoint[9].y = this.circlePoint[0].y;
    77.     }
    78.     public void Display(){
    79.         System.out.println("Toa do 12 diem cua hinh tron la: ");
    80.         System.out.println("Toa do cao nhat la: ");
    81.         this.hPoint.Display();
    82.         System.out.println("Toa do trai nhat la: ");
    83.         this.lPoint.Display();
    84.         System.out.println();
    85.         System.out.println("Toa do con lai: ");
    86.         for (int i=0;i<10;i++){
    87.             System.out.println("Toa do diem "+(i+1));
    88.             this.circlePoint[i].Display();
    89.         }
    90.     }
    91.     public static void main(String[] args){
    92.         System.out.println("Begin Main Function======");
    93.         Point p1 = new Point(10.0,10.0);
    94.         Point p2 = new Point(20.0,20.0);
    95.         CircleCoordinate Circle = new CircleCoordinate(p2,p1,10.0);
    96.         Circle.Display();
    97.         System.out.println("End Main Function ======");
    98.     }
    99. }

    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 ======

Các đề tài tương tự

  1. Chia mảng thành nhiều phần có tổng bằng nhau !
    Gửi bởi hoailam911 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 31-03-2013, 09:23 AM
  2. In ra những phần tử trùng nhau trong mảng 1 chiều( help)
    Gửi bởi thaodangktudn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 20
    Bài viết cuối: 22-09-2012, 10:21 PM
  3. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  4. ADO.NET Cùng nhau chia sẽ về Lấy thông tin phần cứng trong C#
    Gửi bởi huuphat trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 16-04-2011, 08:52 PM
  5. Cách khai báo mảng 2 chiều với số phần tử trong từng dòng là khác nhau
    Gửi bởi Riku trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 11-12-2010, 12:23 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn