Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main(){
- int x, y, x1, y1, x2, y2 , R1, R2;
- cout << "enter the x coordinate of the first
- circle: ";
- cin >> x1;
- cout << "enter the y coordinate of the first
- circle: ";
- cin >> y1;
- cout << "enter the radius of the first circle: ";
- cin >> R1;
- cout << "enter the x coordinate of the second
- circle: ";
- cin >> x2;
- cout << "enter the y coordinate of the second
- circle: ";
- cin >> y2;
- cout << "enter the radius of the second circle: ";
- cin >> R2;
- double x2c = x2 - x1;
- double y2c = y2 - y1;
- double c = ((R2 * R2) - (R1 * R1) - (x2c * x2c) -
- (y2c * y2c)) / 2 * x2c;
- double A = ((y2c * y2c) / (x2c * x2c)) + 1;
- double C = (c * c) - (R1 * R1);
- double B = 2 * C * (y2c / x2c);
- double d = sqrt(((x1 - x2) * (x1 - x2)) + ((y1 -
- y2) * (y1 - y2)));
- double D = B * B - 4 * A * C;
- if (d < R1 + R2){
- cout << "Circles Intersect" <<endl;
- float yi = ((-B + sqrt(D)) / 2 * A);
- float xi = ((C + (B + sqrt(D)) / 2 *A) * y2c) /
- x2c;
- cout << "x and y coordinates of first point of
- intersection intersection" << " " << xi << " " <<
- yi << endl;
- float xj = (-B - sqrt(D) /2 * A);
- float yj = ((C +(B - sqrt(D)) / 2 * A) * y2c) /
- x2c;
- cout << "x and y coordinates of first point of
- intersection intersection" << " " << xj << " " <<
- yj << endl;
- }
- else if (d == 0){
- cout << "circles are touching";
- float xi = ((C + (B + sqrt(D)) / 2 * A) * y2c) /
- x2c;
- float yi = (-B + sqrt(D)) / 2 * A;
- cout << "x and y cordinates of touching point are
- :" << " " << "(" << xi << "," << " " << yi << ")"
- << endl;
- }
- else if (R2 > (R1 * d) && (R1 * d) < abs(R1 - R2))
- {
- cout << "1st circle is inside the second";
- }
- else if(R1 > (R2 * d) && (R2 * d) < abs(R1 - R2)){
- cout << "Second circle is inside the first";
- }
- else if (d > (R1 + R2)){
- cout << "circles do not intersect";
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment