Demigodd
@Demigodd

Как рассчитать Периметр и Площадь треугольника в Class?

spoiler
class Point {
    protected:
        double x, y;
    public:
        Point(double x = 0, double y = 0) 
        {
            this->x = x;
            this->y = y;
        }    
        ~Point() {}
        
        double getX() {
            return x;
        }
        double getY() {
            return y;
        }
        
        void setX(double x) {
            this->x = x; 
        }
        void setY(double y) {
            this->y = y;
        }
};

class Line: public Point {
    private:
        Point a;
    public:
        Line(Point a,Point b): Point(b) {
            this->a = a;
        }
        ~Line() {}
        
        Point getA() {
            return a;
        }
        
        void setA(Point a) {
            this->a = a;
        }
        
        double lineLength() {
            double L = sqrt(pow(a.getX() - getX(), 2) + pow(a.getY() - getY(), 2)); 
            return L;
        }
};

class Triangle: public Point {
    private:
        Point a, b;
    public:
        Triangle(Point a, Point b): Point(c)
        {
            this->a = a;
            this->b = b;
        }
        ~Triangle() {}
        
        Point getA() {
            return a;
        }
        Point getB() {
            return b;
        }
        
        void setA(Point a) {
            this->a = a;
        }
        void setB(Point b) {
            this->b = b;
        }

        double Area() {
            
        }
        double Perimeter() {
            
        }
};


Есть класс Треугольник, который унаследовал класс Поинт.
Теперь из трех точек можно создать треугольник, но как рассчитать их
Периметр Р = a + b + c и Площадь S=1/2 * ah ?
Или возможно, нужно через Line создать треугольник и рассчитать его периметр, если да то как ? можно пример.
  • Вопрос задан
  • 570 просмотров
Решения вопроса 2
zagayevskiy
@zagayevskiy
Android developer at Yandex
Наследование подразумевает отношение "является". Является ли линия точкой? Нет. А треугольник является точкой? Нет. Так за каким же фигом ты их наследуешь так? Треугольник это три точки. Причём не любые, а три различные точки, не лежащие на одной прямой. Этим инвариантам треугольник удовлетворять обязан.
Площадь и периметр считаются из трёх точек.
Ответ написан
@anikavoi
И снова здраствуйте.
Вы не прислушались к моему прошлому совету, да? :)

В классе Point добавьте метод
double DistanceFrom(Point oth)
{
dx = oth.x - x;
dy = oth.y - y;
return(sqrt((dx*dx)+(dy*dy)));
}

Тогда периметр a,b,c будет :
double Perimeter = a.DistanceFrom(b) + b.DistanceFrom(c) + c.DistanceFrom(a);

Ну а площадь... Вы в гугле забейте "Площадь треугольника по координатам вершин" - там все совсем просто.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы