Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80

Спираль Архимеда

23.10.2011, 12:55. Показов 6736. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет , мне нужно построить спираль, которая будет проходить по всем пикселям , начиная от заданных начальных координат(т.е. в итоге должна быть сплошная закрашенная "окружность"), вот моя попытка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  for(int i=0;i<5;i++)
                   {
                 for(float f=0;f<2*3.14;f+=3.14/(4+step))
                 {
                     y= 250 +R*sin(f);
                     x= 250 +R*cos(f);
                     R++;
 
                 image1->SetPixel(x,y,Color::FromArgb(255, 255, 0, 0));
                               pictureBox1->Image=image1;
                 }
                  step+=2;
                   }
проблема в том что программа не проходит по каждому пикселю а получается вот , что(см. вложенный файл). Помогите пожалуйста.
Миниатюры
Спираль Архимеда  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2011, 12:55
Ответы с готовыми решениями:

Спираль Архимеда
Программирование знаю плохо, поэтому прошу помощи: Написать программу на Паскале АВС, выводящую график функции ρ = aφ (Спираль...

Спираль Архимеда
Прошу помощь составить программу делающую спираль архимеда. В полярной системе координат построить график спирали Архимеда . r= a/phi^2

спираль архимеда
Наткнулся на задачку, битый час голову ломаю, суть задачи такова, с++ построить спираль архимена из чисел формата 30 29 28 27 26 25 31...

11
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80
23.10.2011, 14:23  [ТС]
переделал вот , что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 float y,x,R=0,step=0;
                   for(int i=0;i<249;i++)
                   {
                 for(float f=0;f<=2*pi;f+=(pi/(4+step)))
                 {
                     y= 250 +R*sin(f);
                     x= 250 +R*cos(f);
                     
 
                 image1->SetPixel(x,y,Color::FromArgb(255, 255, 0, 0));
                               pictureBox1->Image=image1;
                               
                 }
                   R++;
                   if(i!=0)
                   step+=2;
                  
                   }
             }
Всё равно по всем пикселям не проходит, незнаю в чём дело
Миниатюры
Спираль Архимеда  
0
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80
24.10.2011, 05:31  [ТС]
Короче решил проблему , ошибка была в том что не правильно посчитал степень увелечения пикселей вокруг начальной точки с увеличение радиуса.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
       for(int i=0;i<249;i++)
                   {
                 for(float f=0;f<=2*pi;f+=(pi/(8+step)))
                 {
                     y= 250 +R*sin(f);
                     x= 250 +R*cos(f);
                     
 
                 image1->SetPixel(x,y,Color::FromArgb(255, 255, 0, 0));
                               pictureBox1->Image=image1;
                               
                 }
                   R++;
                   if(i!=0)
                   step+=8;
                  
                   }
             }
но всё равно вопрос открытый , т.к. проходит не по всем пикселям контенера.Я так понял нужна прямоугольная спираль, но не знаю как реализовать....
Миниатюры
Спираль Архимеда  
0
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80
24.10.2011, 05:33  [ТС]
Тихо сам с собою я веду беседу))))
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
24.10.2011, 06:46
Abraziv1, зато сами решаете задачу.
0
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 19
24.10.2011, 18:53
Уравнение параметрическое. Наверное шаг f слишком большой.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.10.2011, 22:17
У тебя подход к задаче принципиально неверный. Тебе, насколько я понял, нужна спираль архимеда. В то время как твой код выполняет построение концентрических окружностей с радиусами 1, 2, 3, ...
0
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 19
25.10.2011, 00:42
По-моему, параметрическое уравнение такое
x=a*t*cos(t);
y=a*t*sin(t);

напр., 0<t<1000; a=0.5; ++t(шаг);
0
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80
25.10.2011, 13:58  [ТС]
А вот такой вопрос, представим , что у нас в в контенере загруженная чёрная стрелка на белом фоне, как узнать её координаты , в частности волнует (радиус и кончик стрелки) или если сложно хотябы одного из них. спасибо, расмотрю все идеи
0
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 19
25.10.2011, 16:05
Цитата Сообщение от Abraziv1 Посмотреть сообщение
у нас в в контенере загруженная чёрная стрелка на белом фоне,
т.е. двумерный массив пикселей?
0
3 / 3 / 0
Регистрация: 11.09.2011
Сообщений: 80
25.10.2011, 16:08  [ТС]
нет изображение, ну например picturebox
0
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 19
26.10.2011, 15:29
Цитата Сообщение от Abraziv1 Посмотреть сообщение
мне нужно построить спираль, которая будет проходить по всем пикселям , начиная от заданных начальных координат(т.е. в итоге должна быть сплошная закрашенная "окружность")
Немного непонятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2011, 15:29
Помогаю со студенческими работами здесь

Нарисовать спираль Архимеда
Помогите. Нужно нарисовать спираль Архимеда. Объясните, как это сделать. Заранее спасибо!

Задачка, в c++, спираль архимеда
пользователь вводит число n, необходимо построить спираль архимеда, квадратную, вот такого вида, через двухмерный массив. .. .. 9 2 1 8...

Изобразить спираль Архимеда
Задача звучит немного иначе, чем название темы, но в этом и есть проблема. Вычислить площадь S фигуры, ограниченной первым витком спирали...

Спираль Архимеда в паскале

Спираль Архимеда. Вычислить длину витка.
Народ помогите пожалуйста 1 раз с таким сталкиваюсь... Вычмслить длину первого витка спирали Архимеда


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru