//первая точка
calculatePoint(mainCircleDiameter / 2, m_AngleNeedle); // вызов функции та что ниже
QPointF Needle::calculatePoint(const double& radius, const double& angle)
{
QPointF pointF;
pointF.setX(m_MainCircleDiameter.value() / 2 + radius * qCos((M_PI * angle) / 180.0));
pointF.setY(m_MainCircleDiameter.value() / 2 + radius * qSin((M_PI * angle) / 180.0));
return pointF;
}
angleValueTransformer.setCurrentValue(data.m_CurrentValue);
// находим угол для центра стрелки
m_AngleNeedle = angleValueTransformer.calculateCurrentAngle();
auto firstPoint = calculatePoint(mainCircleDiameter / 2, m_AngleNeedle);
QPointF pointF;
pointF.setX(m_MainCircleDiameter.value() / 2 + mainCircleDiameter / 2 * qCos((M_PI * m_AngleNeedle(тут нужно значение ширины стрелки на 2)) / 180.0));
pointF.setY(m_MainCircleDiameter.value() / 2 + mainCircleDiameter / 2 * qSin((M_PI * m_AngleNeedle(тут нужно значение ширины стрелки на 2)) / 180.0));
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;
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;
}
Вот с таким поиском точек
у меня выходит вот такая стрелка
как видите я беру такие параметры как диаметр центрального, потмо отступ для промежутка между ним и стрелкой, и высоту необходимую. Нижние 2 точки поулчаются как надо, а вот 2 верхние перед центральной, что-то ен очень. Может надо к ним еще процентр брать от длинны стрелки?