모두 다각형의 모든면의 크기를 두 배의 벡터로 저장하는 다각형 클래스의 함수를 수행하고 싶습니다. 내 Polygon은 Point 클래스 덕분에 빌드됩니다. 그래서 나는 나의 다각형 안에 얼마나 많은 점이 있는지를 알고, 다각형의 그림을 화면에 인쇄하는 것이 성공이다.다각형의 모든면의 거리를 두 배로 두는 벡터
:이 클래스 다각형의 내 헤더Point::Point(double x, double y)
{
_x = x;
_y = y;
}
Point::Point(const Point& other)
{
_x = other._x;
_y = other._y;
}
double Point::getX() const
{
return _x;
}
double Point::getY() const
{
return _y;
}
double Point::distance(const Point& other)
{
return sqrt((getX() - other._x) * (getX() - other._x) + (getY() - other._y) *(getY() - other._y));
}
이다 : 그러나 지점 다각형 감사의 모든 측면의 측면을 얻을 수있는 기능은 여전히
를이 내 수준의 포인트입니다 성공하지 않은
class Polygon
{
public:
Polygon();
~Polygon();
int numOfPoints() const;
vector<Point> getPoints() const;
vector<double> getSides() const;
protected:
std::vector<Point> _points;
};
및 다각형의 CPP :
Polygon::Polygon(){}
Polygon::~Polygon(){}
int Polygon::numOfPoints() const
{
return _points.size();
}
vector<Point> Polygon::getPoints() const
{
return _points;
}
vector<double> Polygon::getSides() const
{
vector<double> sides;
}
그래서 나는 내가 얻을 수있는 방법을 잘 모릅니다 포인트 클래스 덕분에 모든면의 크기. 나는 그것이 포인트의 함수 거리 덕분에 할 수 있다고 생각하지만, 어떻게 해야할지 모르겠다. 네가 나를 도울 수 있다면. 감사합니다!
이러한 문제를 해결하는 올바른 도구는 디버거입니다. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –
글쎄, 어떤 점이 당신의 std :: vector _points에 있는지 확인해야합니다. 왜 모든 점에 자신의 변수를 주려고합니까? 아니면 점의 위치를 정의하는 열거 형을 사용하여지도를 사용하려고합니까? 이것이 없으면 완전히 가능하지만 벡터에서 4 점을 식별 할 수는 없습니다. 어떤 점을 알고있을 때 어느 쪽을 계산할 필요가 있는지 알고있을 때 실제로 거리 함수를 사용하십시오. –
Sossenbinder
Sossenbinder, 머리말의 edti가 내 운동에서 금지되어 있기 때문에 문제가 생기고이 작업을 수행하는 방법을 이해할 수 없기 때문에 –