Bài tập Java: Vị trí tương đối của một điểm so với đường tròn

Bài tập xác định vị trí tương đối của một điểm so với đường tròn.

Bài tập Java: Vị trí tương đối của một điểm so với đường tròn

Đề bài

Cho 1 điểm A có tọa độ (xA;yA), đường tròn tâm O có tọa độ (xO;yO) và bán kính r.
Input: Tọa độ điểm A, tâm O và r.
Output: Vị trí điểm A so với đường tròn (A nằm trong đường tròn, nằm ngoài đường tròn hay nằm trên đường tròn).

Phân tích

Chúng ta chỉ cần tính bình phương khoảng cách từ điểm A tới tâm O của đường tròn. Sau đó xét ba trường hợp sẽ xảy ra như sau:
– Nếu khoảng cách nhỏ hơn bình phương bán kính: Điểm A nằm trong đường tròn.
– Nếu khoảng cách bằng bình phương bán kính: Điểm A nằm trên đường tròn.
– Nếu khoảng cách lớn hơn bình phương bán kính: Điểm A nằm ngoài đường tròn.

Code mẫu

package com.ngockhuong;

import java.util.Scanner;

public class Exercise {
	public static void main(String[] args) {
		int xA, yA, xO, yO, r;
		Scanner input = new Scanner(System.in);
		System.out.print("Nhập hoành độ của điểm A: ");
		xA = input.nextInt();
		System.out.print("Nhập tung độ của điểm A: ");
		yA = input.nextInt();
		System.out.print("Nhập hoành độ tâm O của đường tròn: ");
		xO = input.nextInt();
		System.out.print("Nhập tung độ tâm O của đường tròn: ");
		yO = input.nextInt();
		System.out.print("Nhập bán kính: ");
		r = input.nextInt();
		// bình phương bán kính.
		int rbinhphuong = r * r;
		// bình phương khoảng cách đoạn OA.
		int OAbinhphuong = (xA - xO) * (xA - xO) + (yA - yO) * (yA - yO);
		
		if (OAbinhphuong < rbinhphuong) {
			System.out.println("A nằm trong đường tròn");
		} else if (OAbinhphuong == rbinhphuong) {
			System.out.println("A nằm trên đường tròn");
		} else {
			System.out.println("A nằm ngoài đường tròn");
		}
	}
}

Tham khảo

5 1 vote
Đánh giá bài viết
Nhận thông báo
Thông báo khi có
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả các bình luận