Как вычислить расстояние по координатной плоскости

Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
117
Реакции[?]
11
Поинты[?]
6K
есть карта по горизонтали от A до M и по вертикали от 1 до 13, каждый квадрат пусть будет 300 метров, через чатгпт начирикал код снизу, но загвоздка в том, что в каждом таком квадрате есть более мелкие квадраты(в данном случае каждый по 100 метров).
мне нужно например стрелять из точки A1 3 в C3 8 и узнать расстояние между этими двумя точками
вопрос собственно в том, как это реализовать?
1714598287730.png

C++:
#include <iostream>
#include <cmath>

// Структура для хранения координат
struct Coordinate {
    char column;
    int row;
};

// Функция для вычисления расстояния между двумя квадратами
double calculateDistance(const Coordinate& square1, const Coordinate& square2) {
    int deltaX = abs(square2.column - square1.column);
    int deltaY = abs(square2.row - square1.row);
    return std::sqrt(deltaX * deltaX + deltaY * deltaY) * 300.0; // Умножаем на 300 метров
}

// Функция для преобразования буквенно-цифровых координат в числовые координаты
Coordinate parseCoordinate(const std::string& coordinateString) {
    Coordinate result;
    result.column = coordinateString[0];
    result.row = std::atoi(coordinateString.substr(1).c_str());
    return result;
}

int main() {
    std::string square1Str, square2Str;
    std::cout << "Введите координаты первого квадрата (например, A1): ";
    std::cin >> square1Str;
    std::cout << "Введите координаты второго квадрата (например, F9): ";
    std::cin >> square2Str;

    Coordinate square1 = parseCoordinate(square1Str);
    Coordinate square2 = parseCoordinate(square2Str);

    double distance = calculateDistance(square1, square2);
    std::cout << "Расстояние между квадратами: " << distance << " метров" << std::endl;

    return 0;
}
 
Последнее редактирование:
Сверху Снизу