Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 01:07

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 18:28 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
вот я руками в визио через теже точки раза с шестого на глаз провел кривую которая мне нравится. без лишних синусоид всяческих. представьте как если бы вы рукой по этим точкам кривую тянули. вот такое я и хочу в визио строить.если это описывать математически - то линия между двумя точками должна быть возможно более прямой, а не в виде полусинусоиды как в екселе


Вложения:
3.jpg
3.jpg [ 50.3 Кб | Просмотров: 781 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 18:32 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
вот сам файл например. кривая неидеальная конечно, но идею показывает. если данных нет - линия должна быть возможно прямой между двумя известными точками. а в екселе полином 6-ого порядка рисует самые дикие картины


Вложения:
Drawing1.vsd [155.5 Кб]
Скачиваний: 264
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 сен 2013, 18:35 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
bdfy писал(а):
а в екселе полином 6-ого порядка рисует самые дикие картины
А зачем полином-то? Кубические сплайны вроде лучше. И увеличить число точек.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 18:44 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Цитата:
И увеличить число точек.
я не могу увеличить количество точек. т.е увеличить то могу - но мне нужно чтобы кружочками обязательно показывались только характерные 5-6. хотя... вот только сейчас пришла в голову идея что можно наложить две кривые - одна более точная и вторая с точками без линий. тем не менее проблемы оформления это не снимает - я все равно мечтаю график строить именно в визио.
подумал еще раз - увеличить количество точек иногда очень и очень сложно. эти точки в некоторых случаях результат графического построения (опять же программного) в визио. лезть и усложнять тот макрос я не очень хочу

аппроксимацию я сам вообще ведь не выбираю - это ворд подбирает по умолчанию. впрочем добавлять линию тренда я пробовал - результат обычно такой же плачевный. где вы там видели кубические сплайны ? Excel у меня 2007 SP3. ставить новее не предлагать - количество проблем и несовместимостей зашкаливает


Последний раз редактировалось bdfy 16 сен 2013, 18:53, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 сен 2013, 18:53 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
bdfy писал(а):
где вы там видели кубические сплайны
Сейчас поищу... Должны быть где-то... В OOo есть...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 18:59 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
ну вот где ? :)
Вложение:
.jpg
.jpg [ 53.65 Кб | Просмотров: 442 ]


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 сен 2013, 19:28 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
bdfy писал(а):
ну вот где ? :)
Не здесь... Где-то ещё... В общем, я не нашёл... Может и нет её...
Кстати, я говорил не про линию тренда, а про интерполяцию графика. Вообще её не нашёл.
bdfy писал(а):
вот я руками в визио через теже точки раза с шестого на глаз провел кривую которая мне нравится
Excel'евская кривая очевидно более гладкая, чем твоя...
Кубический сплайн строит примерно то же самое, что в Excel.
bdfy писал(а):
эти точки в некоторых случаях результат графического построения (опять же программного) в визио
Тогда почему график строится в Excel'е?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 19:40 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
а просто тупо соединить точки линиями не пойдет? :) раз нужно, чтоб было как руками...
тогда и эксель не нужен :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 20:24 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Цитата:
а просто тупо соединить точки линиями не пойдет? раз нужно, чтоб было как руками...
не пойдет. "руками" сглаживается график всегда
вроде же простая задача - построить кривую по точкам )) неужели нет решения ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 20:44 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
тогда придется разбираться с загадочной функцией NURBS. не думаю что это "простая задача", раз вы за год не смогли.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 20:48 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Цитата:
не думаю что это "простая задача", раз вы за год не смогли.
за год ? )) за пять. я толкового мануала не вижу. а задача то вполне тривиальная кажется


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 20:54 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
ну вот Tumanov вам в 2009(!) году предлагал же посмотреть в сторону ф-и DrawBezier. копирую вам описание на буржуйском и пример:
Цитата:
Creates a new shape whose path is defined by the supplied sequence of Bezier control points.

objRet = object.DrawBezier(xyArray, degree, flags)
objRet The new Shape object.

object Required. The page, master, or group in which to draw the shape.

xyArray Required Double. An array of alternating x and y values that define the Bezier control points for the new shape.

degree Required Integer. The degree of the Bezier curve.

flags Required Integer. Flags that influence how the shape is drawn.



Version added
4.1

Remarks
The xyArray and degree parameters must meet the following conditions:

1 <= degree <= 9

The number of points must be k * degree + 1, where k is a positive integer. If the first point is called p0, for any integer m between 1 and k, p(m * degree) is assumed to be the last control point of a Bezier segment, as well as the first control point of the next.

The result is a composite curve that consists of k Bezier segments. The input points from xyArray define the curve's control points. If you want a smooth curve, make sure the points p(n - 1), pn, and p(n + 1) are co-linear whenever n = m * degree with an integer m. The composite Bezier curve is represented in the application as a B-spline with integer knots of multiplicity = degree.

The control points should be in internal drawing units (inches) with respect to the coordinate space of the page, master, or group where the shape is being drawn. The passed array should be a type SAFEARRAY of 8-byte floating point values passed by reference (VT_R8|VT_ARRAY|VT_BYREF). This is how Microsoft Visual Basic passes arrays to Automation objects.

The flags argument is a bit mask that specifies options for drawing the new shape. Its value should be zero (0) or visSpline1D (8).

If flags is visSpline1D and the first and last points in xyArray don't coincide, the DrawBezier method produces a shape with one-dimensional (1-D) behavior; otherwise, it produces a shape with two-dimensional (2-D) behavior.

If the first and last points in xyArray do coincide, the DrawBezier method produces a filled shape.



Example
The following example shows how to draw a Bezier curve through five arbitrary points on the active page.



Код:
Public Sub DrawBezier_Example()

    Dim vsoShape As Visio.Shape
    Dim intCounter As Integer
    Dim adblXYPoints(1 To (5 * 2)) As Double

    For intCounter = 1 To 5
       
        'Set x coordinates (array elements 1,3,5,7,9) to 1,2,3,4,5
        adblXYPoints((intCounter * 2) - 1) = intCounter

        'Set y coordinates (array elements 2,4,6,8,10) to f(intCounter)
        adblXYPoints(intCounter * 2) = (intCounter * intCounter) - (7 * intCounter) + 15

    Next intCounter

    Set vsoShape = ActivePage.DrawBezier(adblXYPoints, 2, visSpline1D)

End Sub 


не знаю чем еще помочь.
как у вас с английским?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 21:43 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
видел. пример этот запускать пробовали ? ))
он рисует ломаную линию, никак не сглаженную


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 21:48 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
но я же как то нарисовал руками нормальную кривую... неужели ее не воссоздать макросом


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 22:08 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
да все там нормально рисуется. кривыми. только радиус кривизны маленький
в этой строчке поставил Set vsoShape = ActivePage.DrawBezier(adblXYPoints, 4, visSpline1D), стало лучше видно.
тут есть свои правила. чем больше точек, тем плавнее изгибы. в хелпе написано:
Цитата:
The number of points must be k * degree + 1, where k is a positive integer
т.е. чем выше кривизна, тем больше точек.
вы сами то, когда рисовали свою кривую, видели сколько там узлов? куча. а не ваши 4 штучки.
к вопросу:
Цитата:
неужели ее не воссоздать макросом
можно. кнопочку записи нажмите :)
Код:
Sub Macro1()
    Dim ControlPoints1(19) As Double
    Dim Knots1(10) As Double
    ControlPoints1(0) = 1.65354
    ControlPoints1(1) = 4.80315
    ControlPoints1(2) = 1.83927
    ControlPoints1(3) = 4.98416
    ControlPoints1(4) = 1.79043
    ControlPoints1(5) = 5.62248
    ControlPoints1(6) = 2.12947
    ControlPoints1(7) = 6.15652
    ControlPoints1(8) = 2.79606
    ControlPoints1(9) = 6.4239
    ControlPoints1(10) = 3.26713
    ControlPoints1(11) = 6.02873
    ControlPoints1(12) = 3.57865
    ControlPoints1(13) = 5.58377
    ControlPoints1(14) = 4.43063
    ControlPoints1(15) = 5.10014
    ControlPoints1(16) = 5.28935
    ControlPoints1(17) = 5.46497
    ControlPoints1(18) = 5.55118
    ControlPoints1(19) = 5.74803
    Knots1(0) = 0
    Knots1(1) = 0
    Knots1(2) = 0
    Knots1(3) = 0
    Knots1(4) = 0.909039
    Knots1(5) = 1.75875
    Knots1(6) = 2.47699
    Knots1(7) = 3.1019
    Knots1(8) = 3.82416
    Knots1(9) = 4.64463
    Knots1(10) = 6.29006
    Application.ActiveWindow.Page.DrawNURBS 3, VisDrawSplineFlags.visSpline1D, ControlPoints1, Knots1
End Sub
но точек должно быть МНОГО.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 16 сен 2013, 22:17 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Цитата:
но точек должно быть МНОГО.
если точек будет МНОГО - то и банальное соединение прямыми даст вполне вменяемый результат ))
буду втыкать в пример - но пока не вижу чтобы это было простым решением. еще точек можно получить интерполяцией (просто среднюю добавлять между двумя).


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 30 сен 2013, 17:33 
Не в сети

Зарегистрирован: 30 сен 2013, 17:31
Сообщений: 1
Откуда: Россия Москва
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
отметки шкал делений чтобы можно было менять произвольно (ибо по Х например часто бывает нужно не пять а шесть, семь отметок). теоретически это реализуемо в ексель (если ось Х брать оттуда )


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 06 окт 2013, 00:39 
Не в сети
Постоянный участник

Зарегистрирован: 07 сен 2009, 00:09
Сообщений: 62
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
брать графики из екселя - плохой вариант ( по-прежнему мечтаю разобраться с рисованием красивых графиков в визио


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 31 июл 2015, 22:16 
Можно ли пример построения чего-нибуль (линии, прямоугольника) по данным, которые берутся с Екселя (связь)


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Оформление графиков в Visio
СообщениеДобавлено: 31 июл 2015, 22:55 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Ну, например, вот: https://visioport.epizy.com/biblio/st005.htm
А в чем проблема?
Вариантов ведь может быть очень много. Разных.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB