Аналитическая геометрия на плоскости, или 2D-графика. Графические примитивы.
Примитив Circle
Окружности, эллипсы, их дуги, диски и сектора, окружность и ее дуга – примитив Circle.
Дугу окружности создает графический примитив Circlet {х, у}, r, {th1,th2}]. Здесь {х,у} – координаты центра окружности, г – радиус, {th1,th2} – граничные значения полярного угла. Чтобы нарисовать окружность, достаточно вызвать примитив Circlet {х, у}, г].
Ниже представлено произведение искусства, состоящее исключительно из окружностей.
Чтобы было легче разобраться в этом шедевре, скажу, что он состоит из п = 8 семейств малых окружностей, вокруг которых имеется два "обода". Внешний (тонкий) обод – окружность. Внутренний (толстый) обод – семейство концентрических окружностей. Эти два обода как бы служат рамкой для шедевра. Сам шедевр состоит из n = 8 семейств маленьких окружностей, центры которых также лежат на окружности.
Теперь, чтобы разобраться в шедевре, достаточно знать значения следующих величин, использованных при его построении:
- n = 8 – количество семейств маленьких окружностей;
- m= 40 – количество маленьких окружностей в каждом семействе;
- r = 10 – радиус маленьких окружностей;
- R = lr – расстояние от начала координат до наиболее удаленного (от начала координат) конца проведенного через начало координат диаметра окружности, на которой расположены центры маленьких окружностей; в программе положено i = 3;
- i – номер семейства окружностей; отсчет номера начинается с 0;
- j – номер маленькой окружности в семействе; отсчет номера начинается с 0;
- Rtheta[t] – вектор с координатами {Cos[t], Sin[t]};
- i*2*Pi/n – угол между осью абсцисс и отрезком, соединяющим начало координат с центром окружности, на которой расположены центры маленьких окружностей i-го семейства;
- R*Rtheta[i*2*Pi/n] – координаты наиболее удаленного (от начала координат) конца проведенного через начало координат диаметра окружности, на которой расположены центры маленьких окружностей i-го семейства;
- kr – расстояние от начала координат до ближайшего (к началу координат) конца проведенного через начало координат диаметра окружности, на которой расположены центры маленьких окружностей; в программе положено k = 1;
- k*r*Rtheta[i*2*Pi/n] – координаты ближайшего (к началу координат) конца проведенного через начало координат диаметра окружности, на которой расположены центры маленьких окружностей i-го семейства;
- R 1 = (R+k*r)/2 – радиус окружности, на которой находятся центры тех окружностей, на которых расположены центры маленьких окружностей семейств;
- R1*Rtheta[i*2*Pi/n] = (R+k*r)*Rtheta[i*2*Pi/n]/2 – координаты середины проведенного через начало координат диаметра окружности, на которой расположены центры маленьких окружностей i-го семейства; иными словами, это центр той окружности, на которой лежат центры окружностей i-го семейства;
- r1 = (R-k*r) /2 – радиус окружности, на которой расположены центры маленьких окружностей семейства;
- Rl*Rtheta[i*2*Pi/n]+rl*Rtheta [i*2*Pi/n+j/m*Pi] – координаты центра у окружности i-го семейства.