| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Нахождение точки графика по рисунку |
| Автор: colaa 8.3.2006, 17:10 | ||
| Зараннее спасибо всем кто поможет Программа измеряет одинаковыми отрезками кривую Что я сделал: - загрузил в окно BMP-файл с нужной кривой - создал функцию для поиска начала этой кривой -создал функцию, которая перемещает начало координат в точку начала кривой , допустим точку А, сканирует окружность вокруг точки А с заданным радиусом, находит там черную точку Б и проводит линию от точки А к точке Б, все Я не знаю как зацикловать, то есть дальше нужно чтобы начало координат перемещалось в точку Б, также сканировалась следующая окружность, находилась точка В И строилась бы линия от Б к В, и так до конца Сейчас код уже рабочий и строит одну линию, файл BMP должен быть в той же папке что и прога и называться dogs.bmp Вот листинг
|
| Автор: colaa 8.3.2006, 20:07 | ||||
| С циклом разобрался Осталось как раз это
Например если А(0;0) - начало координат, а Б - точка к которой проводится линия, например Б(-15;10), то при следующем цикле уже Б(0;0) - начало координат, а вот А - точка которая должна исключаться из дуги, чтобы к ней не шла линия опять, и как я понимаю она должна быть равна А(15;-10) (координаты обратные Б в предыдущем цикле), все так и описал но все равно не выходит, что делать?
создам еще в общих тему |
| Автор: Fixin 8.3.2006, 21:07 |
| Не стоит - за дубли получишь. Зачем ты вообще оси переносишь? считай все в одних осях, проще будет. Ты же рисунок анализируешь (хотя и смешным и мутным способом, но достаточно простым), а в нем все координаты положительные, все просто. Ты график ф-ции анализируешь? Тогда просто запоминай координаты предыдущей точки и все, ведь график - линия. |
| Автор: colaa 9.3.2006, 00:16 | ||||||||
| Fixin, Спасибо тебе,
Блин, теперь не знаю как удалить, там только редактирование
Я так и хотел сначала без координат, только не понял как модифицировать уравнение круга, не подскажешь?
Потом я просто считаю количество отрезков и умножаю на их длину |
| Автор: Fixin 9.3.2006, 15:55 |
| Нажми кнопку "репорт" и напиши модератору. Я бы взялся за векторы с направлением, противоположным "движению по линии". Для этого, нужно искать первые две точки (по ним строить первый вектор) и продолжать. Какова цель проги? Нынешний метод ее решения весьма нерационален и неоптимален... Переношу в "центр помощи". |
| Автор: Fixin 9.3.2006, 15:56 |
| Для домашних заданий, курсовых, существует "Центр Помощи" |
| Автор: colaa 9.3.2006, 19:36 | ||||
Цель измерить кривую одинаковыми отрезками с заданной длиной Потом умножаем количество отрезков на их длину получаем длину кривой И так несколько раз с разной длиной отрезка Дальше строим график X - длина отрезка, Y - длина кривой Это на самом деле моя первая прога, поэтому и такие методы
Напиши пожалуйста как лучше сделать, как оптимально? |
| Автор: Fixin 9.3.2006, 19:59 |
| ТОгда все путем. Главное - результат. опыт придет. Я думаю, стоит подождать мнения других участников. |
| Автор: colaa 9.3.2006, 23:55 | ||
| Вот написал за вечер совсем по другому, уже без перестановки координат, теперь работает, но Вопрос У меня функция NumBlackPoints возвращает количество точек на кривой Я не знаю как после этого создать массив точек как раз для этого количества, сейчас он у меня фиксированный, на 10000 точек
|
| Автор: Fixin 10.3.2006, 21:06 | ||||||
Модератор: Когда код окаймляешь тегами, выбирай язык.
Сделай отдельную функцию для всатвки элементов, возвращающую новый указатель на массив, а принимающая старый и новый элемент. Делайтак:
Добавлено @ 21:06 count - колво элементов. |
| Автор: colaa 12.3.2006, 23:04 |
| Спасибо! |