+1
    
 Hỏi về cách xét vị trí tương đối của 2 đường tròn bằng js
E đang làm 1 đề bài xét vị trí tương đối của 2 đường tròn bằng js, có nghĩ ra cách là xét OO' = R + r thì là 2 đường tròn giao nhau.... mà viết vào code e k biết viết sao, đề bài cụ thể như sau ạ :
- 
- Tạo module circle.jsexport 1 constructor function tên là Circle
 
- Tạo module 
- 
- Circle có 3 property là x, y, radius (toạ độ x, y và bán kính)
 
- 
- Circle có 1 method là isOverlapped (overlap là chồng lấn, đè lên nhau), trả về -1 nếu 2 hình tròn này đè lên nhau, trả về 1 nếu 2 hình tròn không đụng nhau, trả về 0 nếu 2 hình tròn tiếp xúc nhau.
 
- 
- Test thử và code e viết được 1 tí ở link này :https://repl.it/@Cao_Xuan_SangXu/GrippingAllTabs
 
Phần ý 1 e chưa làm vì đang muốn viết thử vào 1 file xem có chạy được rồi mới tách ra file circle sau :3 mọi người giúp e với ạ, e cảm ơn
            Thêm một bình luận
         
2 CÂU TRẢ LỜI
        +8
    
 Bài toán này anh nghĩ em có thể giải quyết như sau:
- Tính khoảng cách giữa tâm 2 đường tròn
- So sánh khoảng các giữa tâm 2 đường tròn, với tổng độ dài 2 bán kính
d > r1 + r2 => return 1 
d == r1 + r2 => return 0
d < r1 + r2 => return -1
Code
function Circle(x, y, r) {
    this.x = x;
    this.y = y;
    this.r = r;
};
Circle.prototype.isOverlapped = function(c) {
  var d = Math.sqrt(Math.pow(this.x - c.x, 2) + Math.pow(this.y - c.y, 2));
  if (d == this.r + c.r) {
    return 0;
  }
  if (d < this.r + c.r) {
    return -1;
  }
  return 1;
}
Em cảm ơn ạ
em cảm ơn ạ 😁
 
  
  
  
 
