Java - Xác định vị trí của một điểm so với đường tròn và hiển thị thông báo.

Viết chương trình nhập vào tọa độ điểm O (XO,YO) là tâm của một đường tròn, tọa độ điểm M (XM,YM) và bán kính R của đường tròn. Xác định và thông báo lên màn hình điểm M nằm trong, trên hay ngoài đường tròn đó.

Bài giải

-------------------- ######## --------------------

Hướng dẫn: Để biết được điểm M nằm trong, trên hay ngoài 1 đường tròn thì chúng ta sẽ tính khoảng cách từ điểm M tới tâm O của đường tròn. Sau đó xét 3 trường hợp sau đây:

Nếu bình phương khoảng cách từ điểm M tới tâm O nhỏ hơn bình phương bán kính R thì điểm M nằm trong đường tròn.

Nếu bình phương khoảng cách từ điểm M tới tâm O bằng bình phương bán kính R thì điểm M nằm trên đường tròn.

Nếu bình phương khoảng cách từ điểm M tới tâm O lớn hơn bình phương bán kính R thì điểm M nằm ngoài đường tròn.

Chúng ta giải bài này như sau:

Bài giải
package cau_truc_ifelse;

import java.util.Scanner;

public class XacDinhViTriCua1DiemSoVoiDuongTron {

	public static void main(String[] args) {
		int hoanhDoDiemM, tungDoDiemM, hoanhDoTamO, tungDoTamO, banKinhR;
		String viTri;
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("Nhập vào hoành độ tâm O: ");
		hoanhDoTamO = scanner.nextInt();
		System.out.println("Nhập vào tung độ tâm O: ");
		tungDoTamO = scanner.nextInt();
		System.out.println("Nhập vào hoành độ điểm M: ");
		hoanhDoDiemM = scanner.nextInt();
		System.out.println("Nhập vào tung độ điểm M: ");
		tungDoDiemM = scanner.nextInt();
		System.out.println("Nhập vào bán kính R: ");
		banKinhR = scanner.nextInt();
		
		// tính bình phương khoảng cách từ tâm O tới điểm M.
		int khoangCachOM = (hoanhDoDiemM - hoanhDoTamO) * (hoanhDoDiemM - hoanhDoTamO) + 
			(tungDoDiemM - tungDoTamO) * (tungDoDiemM - tungDoTamO);
		
		// tính bình phương bán kính
		int banKinh = banKinhR * banKinhR;
		
		// so sánh bình phương khoảng cách OM với bình phương bán kính
		if (khoangCachOM < banKinh) {
			viTri = "Điểm M nằm bên trong đường tròn.";
		} else if (khoangCachOM == banKinh) {
			viTri = "Điểm M nằm trên đường tròn.";
		} else {
			viTri = "Điểm M nằm ngoài đường tròn.";
		}
		
		System.out.println(viTri);
	}

}

Kết quả sau khi biên dịch chương trình:

 

Nguồn: freetuts.net