• Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, Да, вы были правы, я по ошибки брал центр окружности и центр самого окна где распологается окружность. Остается вопрос про 2 тикмарка что в самом начале и в самом конце дуги. Дл я них имеются данные только ширины и высоты, и больше ничего. Если я правильно понимаю то мне чтоыб вычислить позицию для них надо иметь данные конца и начала дуги?
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, В общем по сути получилось то что я и искал.
    64b282781d2fd180451374.png

    Единственное я наверное не все правильно считаю, по этому они как то не по кругу распологаются.
    Но с этим сейчас работаю.
    И такой вопрос еще, если глянуть на картинку с самим обьектом, то в начале и в конце там есть тоже так сказать начальный и конечный тикмарк. И для него уже нету угла. Знаю что они в начале и в конце дуги. Какие параметры мне надо найти или вычеслить?
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, Понял, спасибо. Сейча займусь и этим.
    Единственное не пойму почему так странно сдвинута синяя (хз как это назвать) фигура.
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, Похоже что-то у меня получилось, но это что-то странное)
    64b014508e591061897864.png

    И как я понимаю у меня высчитаны точки по окружности, но не учитывается отстук ширины дуги? И надо же еще вторую точку? Как можно сдвинуть от начальнйо точки на извествую длинную тикмарка?
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, По вашему совету подправил те неточности что у меня были.
    qDebug() << "radius" << m_GaugeWidthHeight.value() / 2;
            auto radius = m_GaugeWidthHeight.value() / 2;
            auto xPoint = m_GaugeWidthHeight.value() + radius * qCos((M_PI * angle) / m_GaugeWidthHeight.value());
            auto yPoint = m_GaugeWidthHeight.value() + radius * qSin((M_PI * angle) / m_GaugeWidthHeight.value());
            tmpList.append({xPoint, yPoint});
            qDebug() << "points" << m_GaugeWidthHeight.value() << angle << radius << xPoint << yPoint;


    А вот вывод все равно какой то странный
    radius 242.5
    points 485 75 242.5 699.442 598.23
    radius 242.5
    points 485 112.5 242.5 665.912 646.484
    radius 242.5
    points 485 150 242.5 621.76 685.258
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, так, вы дали мне пищу для размышления.
    Но отвечаю на вопрос, m_GaugeWidthHeight это переменная в которой я сохраняю что из(ширина или высота) наименьшее. Это делаю чтобы пересчитывать правильно все обьекты при изменении.
    m_height и m_width это по отдельности высота и ширина данной окружности.

    И вот описание к функции Returns the sine of the angle v in radians.
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Полноценный код кинуть очень не просто, но вот часть его.
    for (const auto &angle : initTickMark(data))
        {
            qDebug() << "size" << m_GaugeWidthHeight.value() / 2;
            auto radius = m_GaugeWidthHeight.value() / 2;
            auto xPoint = m_Width + radius * qCos(angle);
            auto yPoint = m_Height + radius * qSin(angle);
            tmpList.append({xPoint, yPoint});
            qDebug() << "points" << m_GaugeWidthHeight.value() << angle << radius << xPoint << yPoint;
        }


    Это for для вычесленого угла каждого тикмарка
    И вот сам вывод в консоли для нескольких тикмарков
    size 242.5
    points 485 75 242.5 748.525 390.963
    size 242.5
    points 485 112.5 242.5 725.508 348.608
    size 242.5
    points 485 150 242.5 694.568 311.642
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Wataru, тогда я не понимаю.
    При таких расчетах я получаю странные точки размер - 485, угол - 150, точка x - 864.137, точка y - 138.285
    Это где то в не окружности получается
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Спасибо за ответ.
    Смотрите, предположим размер окружности(в моем случаи дуга) равна 485 высота на 485 ширина, угол для одного из тикмарков 150 градусов.
    Получается что считать надо так (ширина на 2 это центр) + радиус умноженый на сосинус угла данного тикмарка. Я правильно понимаю?
    Или я не правильно понимаю расчеты, так как с этими данными у меня пустая область
  • Как найти точки на дуге?

    @BlinCT Автор вопроса
    Lynn «Кофеман», не удевляйтесь так, я правда очень далек от геометрии. Могли бы вы расписать по формуле? И ведь еще важно учитывать ширину дуги, а так как она динамически будет менятся то это тем более важно.
    Спасибо