Страницы: 1
RSS
Создание окружностей с центром в точках, заданных на графике
 
Нужно построить окружности, центр которых совпадает с точками на графике и каждая последующая окружность изменяет свой диаметр на 1. Возможно ли задать или построить такие окружности с помощью vba?
Изменено: linda_m - 06.04.2013 18:51:01
 
Да можно и без VBA :) Задайте параметры маркера точки: нет заливки, тип: окружности, размер: до 72 (в файле - максимальный), цвет линии маркера, тип линии маркера.
Можно задать индивидуально для каждой точки.
 
а как увеличить диаметр каждой последующей окружности на 1?
 
А вот это
Код
If -4 <= x <= 4 Then
неправильно, прочитайте
http://www.cyberforum.ru/visual-basic/thread652156.html#post3450742
 
linda_m, окружность задается параметрическим уравнением:
X=a+R*Cos(A)
Y=b+R*Sin(A)

здесь: a и b - координаты центра; R- радиус; (А) - 0<=A<=2*Pi
Напишите функцию, вычисляющую X и Y и стройте график. Что б на графике была окружность, а не овал - размерность по осям должна быть в одном масштабе.
 
Цитата
linda_m пишет:
а как увеличить диаметр каждой последующей окружности на 1?
Можете дописать к процедуре построения графика или запускать отдельно:
Код
Sub Макрос1()

Dim i&, j&
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
    .MarkerBackgroundColorIndex = xlNone
    .MarkerStyle = xlCircle
    j = 20      'размер первой окружности
    For i = 1 To .Points.Count
        .Points(i).MarkerSize = j
        j = j + 1
    Next
End With
End Sub
 
Ещё один вариант без макросов с пузырьковой диаграммой

Немного изменила файл, чтобы менялся именно диаметр окружностей
Изменено: Pelena - 06.04.2013 21:38:32
 
Pelena,
 
Казанский, этот макрос для любых значений функции подходит? пробовала увеличить промежуток х [-10;10], окружности строятся только до середины графика
 
Макрос проходит по всем точам ряда (For i = 1 To .Points.Count).
Попробуйте пройти программу по шагам (F8), одновременно глядя на график.

Цитата
linda_m пишет:
пробовала увеличить промежуток х [-10;10]
А шаг изменили или он тем же остался? Макрос в таком виде может работать с рядом, в котором не более 53 точек. Для 54-й точки размер получается 73 и возникает ошибка (см. пост #2).
 
Казанский, да, шаг тем же остался
Страницы: 1
Наверх