Объекты по спирали

  • Автор темы Автор темы Romie
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Romie

Участник
Топикстартер
Сообщения
5
Реакции
0
Ребят, подскажите начинающему!
Можно ли заполнить лист маленькими кругами (2-3 мм) плотно расположенными по спирали (симметрической)? Как-то автоматически, а не руками каждый кружок?
 
Какое ПО?
Наверное: нарисовать "спираль" -> создать кисть (маленькие круги по 2+3 мм) -> применить кисть к "спирали"
 
  • Спасибо
Реакции: Romie
Можно ли заполнить лист маленькими кругами (2-3 мм) плотно расположенными по спирали (симметрической)?
Бленд (перетекание) по пути
Наверное: нарисовать "спираль" -> создать кисть (маленькие круги по 2+3 мм) -> применить кисть к "спирали"
Это уж черезчур замороченно ;)
Но, с другой стороны, почему бы не прорекламировать себя любимого? ;)
 
Просто спираль пунктиром (точками) толщиной 2-3 мм...
Гениально! Единственное "но" - количество и расстояние между кружками регулировать нельзя. А блендом - можно! :4)
 
В кореле проблема нарисовать симметрическую спираль.
Ну а сама задача нарисовать спираль и перетеканием разместить кружочки.
 
Да, интересует именно CorelDraw.
Слышал про скрипты или макросы, но ничего в инете не нашел подобного ((
Спираль-то нарисовать симметрическую не проблема. Единственная заморочка - ограничение количества витков - 100. А мне нужно все 200 витков. Тож не понятно, зачем так ограничили?
 
Единственная заморочка - ограничение количества витков - 100. А мне нужно все 200 витков.
Параметры спирали озвучьте, начальный радиус, конечный или шаг витков, обычная или логарифмическая ну и так далее.
 
Благодарю за помощь! С размещением кружков по спирали вопрос решился, но спираль вышла только в 100 витков, а этого мало.

Подробности: мне нужно заполнить страницу 60х60 см симметрической спиралью с расстоянием между витками приблизительно в 2 мм. Это около 200 витков.
 
Последнее редактирование:
Параметры спирали озвучьте, начальный радиус, конечный или шаг витков, обычная или логарифмическая ну и так далее.

Нужная мне спираль при 100 витках стандартным способом у меня получается размером 404х404 мм. В настройках других параметров нет.
 
А двойные спирали не подойдут?
Можно сделать дубль, перевернуть на 180°, поправить положение для равномерности.
Можно дать обводку в половину шага витка и преобразовать её в кривые.
 
  • Спасибо
Реакции: Romie
Макрос в базе примерно следующий
Код:
Sub DrawSpiral()
    Dim s1 As Shape
    Dim crv As Curve
    Dim crvsp As SubPath
    Set s1 = ActiveLayer.CreateLineSegment(0, 0, 0, 0)
    s1.Outline.SetProperties 0.007874, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), cdrFalse, cdrFalse, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, MiterLimit:=5#
   
    Set crv = ActiveDocument.CreateCurve

    dmm = 25.4
    pi = 3.14159265358979
    Set crvsp = crv.CreateSubPath(0, 0)

    For A = 0 To 54180 Step 10
        r = (2 * A / 360) / dmm
        ca = A + sh
        lastx = (r) * Cos(ca * pi / 180)
        lasty = (r) * Sin(ca * pi / 180)
        crvsp.AppendLineSegment lastx, lasty
    Next A
    s1.Curve.CopyAssign crv
End Sub
А параметры выводить уже по настроению.
 
  • Спасибо
Реакции: Romie и lev
Так он у тебя прямыми отрезками что ли спираль рисует?
 
Да, прямыми. Выделить узлы, сделать их безье и сгладить вопрос лишь пары кликов мышкой. В макросе это не делал поскольку задачи бывают разные.
 
Небольшая вариация
Код:
Sub DrawSpiral()
  Dim s1 As Shape
  Dim crv As Curve
  Dim crvsp As SubPath
  ActiveDocument.Unit = cdrMillimeter
  Set crv = ActiveDocument.CreateCurve
  dist = 2
  'dist = InputBox("Расстояние между витками", "Spiral", 2)

  pi = 3.14159265358979
  Set crvsp = crv.CreateSubPath(0, 0)

  st = 45
  For A = 0 To 54180 + st Step st
  r = (dist * A / 360)
  ca = A + sh
  lastx = (r) * Cos(ca * pi / 180)
  lasty = (r) * Sin(ca * pi / 180)
  crvsp.AppendLineSegment lastx, lasty
  Next A
  Set s1 = ActiveLayer.CreateCurve(crv)
  s1.Curve.Segments.All.SetType cdrCurveSegment
  s1.Curve.Nodes.All.SetType cdrSmoothNode
  s1.Curve.Nodes.Last.Delete
End Sub
 
  • Спасибо
Реакции: splxgf
Статус
Закрыто для дальнейших ответов.