Я добавил горизонтальную полосковую линию к диаграмме синусоидального типа, которая не имеет много точек данных. Есть ли способ найти пересечения х-координат?Графики: точки пересечения полос и кривых
ответ
Вы можете анализировать его аналитически, то есть если ваши данные получены из формулы, вы можете использовать математику для решения набора пересечений.
Или вы можете нам приблизиться с небольшой помощью от GDI+
.
Как вы нашли, используя DataPoints
непосредственно в тонко населенном наборе точек не будет работать.
Но есть интересное и простое обходное решение, которое может создать для вас увеличенный набор точек.
Для этого нужно использовать сплющенныеGraphicsPath
:
Давайте предположим, что ваши ценности в List<PointF> points
:
List<PointF> points = new List<PointF>();
for (int i = 0; i < 10; i++) points.Add(new PointF(i, (float)Math.Sin(i)));
Теперь вы первый создать GraphicsPath
от него:
using System.Drawing.Drawing2D;
..
..
GraphicsPath gp = new GraphicsPath();
gp.AddCurve(points.ToArray());
Затем вы сглаживаете его:
Matrix m = new Matrix(); // identity
gp.Flatten(m, yourFlatness);
Это изменяет GraphicsPath
из серии кривых, (которые являются идентичными кривыми сплайна Chart
«с, кстати,) к серии отрезков. «Плоскость» определяет, насколько линии могут отклоняться от кривой. поэтому, чем меньше плоскость, которую вы используете (по умолчанию 0,25f), тем больше сегментов вы получаете.
Начато с 10 DataPoints
показано ниже в красном цвете. После выпрямления с 0.1f
, 0.01f
и 0.001f
мы получаем сегменты 19
, 55
и 152
точек/линий соответственно ..:
Вы можете Acces их в gp.PathPoints
массиве и получите гораздо ближе к реальным перекресткам. Добавьте немного интерполяции, и вы должны быть достаточно близко к джазу ..
Отлично ... точно, как мне было нужно .. спасибо – user3760188
- 1. Как найти точки пересечения линии и нескольких кривых в Python?
- 2. Matlab: точка пересечения кривых
- 3. Синхронизировать точки пересечения двух пар кривых с fminsearch
- 4. точка пересечения 2 нормальных кривых
- 5. Надежный тест для пересечения двух кривых Безье
- 6. Точки пересечения в R
- 7. Найти точки пересечения MATLAB
- 8. Графики кривых BSpline в C++/Octave
- 9. Графики кривых ROC для результатов альт-Джонса
- 10. Нахождение точки пересечения между линией и QPainterPath
- 11. Точки пересечения овальной линии и линии
- 12. Обратные точки пересечения и объекты, пересекающиеся
- 13. Точки пересечения между линией и полилинией
- 14. Нахождение точки пересечения линии и прямоугольник
- 15. Определение точки и угла пересечения двух окружностей.
- 16. Android: найдите точки пересечения линии и изображение
- 17. Точки пересечения между линией и прямоугольником
- 18. Определение точки пересечения двух линий
- 19. Точки пересечения вектора с конусом
- 20. Nvidia Optix точки пересечения глаз
- 21. нахождения точки пересечения в R
- 22. Найти точки пересечения векторной конструкции
- 23. точки пересечения детерминированными не работают
- 24. Точки пересечения в середине текста
- 25. Столкновение точки 2 кривых в 3d-комнате
- 26. Декартовы точки на эллиптических кривых в шалфее
- 27. Как найти точки пересечения двух плоскостей
- 28. Формула для нахождения точки пересечения двух линий
- 29. Расчет точки пересечения квадратичной кривой Безье
- 30. плавающего исключения точки при нахождении пересечения
Пожалуйста, покажите WAHT вы испробовали – InitLipton
Пожалуйста, предоставьте нам Infor, о которых библиотека и вы как раз используя какие рамки приложение разрабатывается в WPF (WF, , UWP, ...). –
Я использую System.Windows.Forms.DataVisualization.Charting, и я еще ничего не пробовал, кроме поиска ближайших точек данных в моем исходном массиве fior, но точность не будет такой же хорошей, как фактические точки пересечения – user3760188