381 / 4 / 3
Регистрация: 20.03.2013
Сообщений: 43

Построить спираль на листе Excel

10.04.2013, 17:51. Показов 9395. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: построить спираль на листе Excel, используя автофигуры.

Подскажите по следующим вопросам:
  1. Какую автофигуру надо использовать?
  2. Как строить автофигуру?
Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2013, 17:51
Ответы с готовыми решениями:

Построить спираль.
Построить спираль вокруг начала координат с n витками и внешним радиусом r; начальное направление спирали образует с осью OX угол a....

Построить гиперболическую спираль
Здравствуйте. Задание следующее - построить гиперболическую спираль (r = a × j1/2 + d) в полярной системе координат. Дело в том, что я...

Графика: построить спираль
Нужна помощь в составлении программы

9
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
10.04.2013, 18:45
1. Автофигуры - Линии - Кривая.
2. Включите запись макроса, нарисуйте какую-нибудь спираль, посмотрите, что получится.
0
381 / 4 / 3
Регистрация: 20.03.2013
Сообщений: 43
10.04.2013, 23:30  [ТС]
Я включила запись макроса, пытаюсь рисовать автофигуры, но записывается только пустая процедура .
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.04.2013, 01:01
2007?
Получайте в качестве затравки код из 2000
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 10.04.2013 (User)
'
 
'
    With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 288#, 82.5)
        .AddNodes msoSegmentCurve, msoEditingAuto, 288.75, 146.25
        .AddNodes msoSegmentCurve, msoEditingAuto, 219#, 153.75
        .AddNodes msoSegmentCurve, msoEditingAuto, 195#, 93#
        .AddNodes msoSegmentCurve, msoEditingAuto, 234.75, 49.5
        .AddNodes msoSegmentCurve, msoEditingAuto, 323.25, 53.25
        .AddNodes msoSegmentCurve, msoEditingAuto, 353.25, 122.25
        .AddNodes msoSegmentCurve, msoEditingAuto, 321#, 186#
        .AddNodes msoSegmentCurve, msoEditingAuto, 222.75, 203.25
        .AddNodes msoSegmentCurve, msoEditingAuto, 150.75, 149.25
        .AddNodes msoSegmentCurve, msoEditingAuto, 158.25, 54.75
        .AddNodes msoSegmentCurve, msoEditingAuto, 228.75, 16.5
        .ConvertToShape.Select
    End With
End Sub
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.04.2013, 02:04
Лучший ответ Сообщение было отмечено как решение

Решение

А я в качестве запала использовал собственный код для Word. Нарисовать: Ctrl-s*. Del — стереть.
___________________
* раскладка английская (Ctrl-ы не работает)
Миниатюры
Построить спираль на листе Excel   Построить спираль на листе Excel  
Вложения
Тип файла: xls Spirographia.xls (41.0 Кб, 175 просмотров)
3
Заблокирован
11.04.2013, 14:38
Sasha_Smirnov, Красота !
1
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
11.04.2013, 15:34
Лучший ответ Сообщение было отмечено как решение

Решение

Здравствуйте,
Выкладываю свой вариант спирали - как мне кажется, более простой для понимания. И рисуется спираль аккуратно.

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
'Ïîëüçîâàòåëüñêèé òèï, ïðåäñòàâëÿþùèé òî÷êó â äåêàðòîâîé ñèñòåìå êîîðäèíàò.
Type MyPoint
   x As Double
   y As Double
End Type
'Ïðîöåäóðà îñóùåñòâëÿåò ïåðåâîä èç ïîëÿðíîé ñèñòåìû êîîðäèíàò â äåêàðòîâó ñèñòåìó.
Sub PolarToDecart(ByRef p As MyPoint, ByVal r As Double, ByVal phi As Double)
   p.x = r * Cos(phi)
   p.y = r * Sin(phi)
End Sub
'Ïðîöåäóðà âîçâðàùàåò ìàññèâ òî÷åê ñïèðàëè.
Sub GetArchimedePoints(ByRef p() As MyPoint, ByVal k As Double, _
ByVal NumOfPoints As Long, Optional ByVal MaxRadius As Single = 256, _
Optional ByVal StartX As Single = 320, Optional ByVal StartY As Single = 320)
   Dim i As Long, h As Double, r As Double, phi As Double
   ReDim p(NumOfPoints - 1) As MyPoint
   p(0).x = StartX
   p(0).y = StartY
   h = CDbl(MaxRadius) / (NumOfPoints - 1) 'Øàã êðèâîé.
   For i = 1 To NumOfPoints - 1
      r = h * i   'Ðàññòîÿíèå îò öåíòðà ïîëÿðíîé ñèñòåìû êîîðäèíàò.
      phi = r / k 'Óðàâíåíèå ñïèðàëè Àðõèìåäà: r = k * phi, ñëåäîâàòåëüíî, phi = r / k.
      PolarToDecart p(i), r, phi 'Ïîëó÷àåì êîîðäèíàòû òî÷åê ñïèðàëè â äåêàðòîâîé ñèñòåìå.
      p(i).x = p(i).x + StartX
      p(i).y = p(i).y + StartY
   Next i
End Sub
'Ïðîöåäóðà äëÿ ðèñîâàíèÿ ñïèðàëè.
Sub DrawArchimede()
   'Ñïèðàëü áóäåì ñòðîèòü ïî 100 òî÷êàì.
   Const N_OF_POINTS_USED = 100
   'Îïðåäåëÿåì ïåðåìåííûå öèêëà è ìàññèâ òî÷åê êðèâîé.
   Dim i As Long, p() As MyPoint
   'Çàëèâàåì ëèñò áåëûì öâåòîì.
   Cells.Interior.Color = vbWhite
   'Óáèðàåì ñ ëèñòà óæå ñóùåñòâóþùèå ôèãóðû.
   With ActiveSheet.Shapes
      i = .Count
      While i > 0
         .Item(i).Delete
         i = i - 1
      Wend
   End With
   'Çàïîëíÿåì ìàññèâ.
   GetArchimedePoints p(), 10, N_OF_POINTS_USED
   'Ðèñóåì ñïèðàëü.
   With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, CSng(p(0).x), CSng(p(0).y))
      For i = 1 To N_OF_POINTS_USED - 1
         .AddNodes msoSegmentCurve, msoEditingAuto, CSng(p(i).x), CSng(p(i).y)
      Next i
      .ConvertToShape
   End With
End Sub


С уважением,
Aksima
7
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.04.2013, 18:57
Ещё упростим?
Цитата Сообщение от Aksima Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
With ActiveSheet.Shapes
     i = .Count
     While i > 0
         .Item(i).Delete
          i = i - 1
    Wend
End With
аналогично
Visual Basic
1
2
ActiveSheet.Shapes.SelectAll
Selection.Delete
Aksima, 20 витков мой код рисует 2,5 минуты (при 3,1 ГГц). Ваш аккуратней, но дольше. Зато аккуратней!

Кстати, Word — секунды три-четыре.
Миниатюры
Построить спираль на листе Excel  
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.04.2013, 23:53
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Word — секунды три-четыре.
Тьфу ты, 0,3—0,4 секунды (на частоте 2,28 ГГц):
Миниатюры
Построить спираль на листе Excel  
0
381 / 4 / 3
Регистрация: 20.03.2013
Сообщений: 43
11.04.2013, 23:54  [ТС]
Лучший ответ Сообщение было отмечено как решение

Решение

Ой, какие красивые спирали! Всем спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2013, 23:54
Помогаю со студенческими работами здесь

Построить гиперболическую спираль
Нужно построить гиперболичскую спираль r=a/t

Построить логарифмическую спираль
Построить логарифмическую спираль r = a*ekф , ( k>0) (ф- фи) их значения вводим сами!!!

Как построить архимедову спираль?
Доброго времени суток, форумчане! Необходимо построить архимедову спираль, уравнение которой имеет вид p=alpha*fi, где либо fi<0, либо...

Построить спираль в квадрате 800х800
Дали задание вот такое задание: Построить спираль в квадрате 800х800 такого вида....

Построить Архимедову спираль: p = aφ
11 Построить Архимедову спираль: p = aφ"\


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru