8
« : 26 Июля 2019, 20:52:10 »
Выбешивает задание отрезков парами точек. Почему бы не задавать сразу целый провод перечислением входящих в него точек? Опять же, зачем каждый раз указывать радиус провода и сегментацию? Тавтология какая-то! Радиус надо указывать только в том месте когда он меняется на другой. Просятся так же операторы пространственного преобразования MOVE, ROTATE, SCALE, REPEAT... Такой язык мог бы выглядеть примерно так (что-то вробе БЕЙСИКА):
#define LW %1 # длина волны (задается в командной строке)
#include "text.ant"
#pragma code (MAA) # GAA, NEC - тип кодирования результата
{
H = 10; D = 6 # высота, плечо
RADIUS = 0.001 # радиус провода
SEGMENT = LW / 100 # размер сегмента
GND = [0, 0, 0] # земля
TOCHKA = [5, 3, H] # точка пересечения проводов 4 и 5
< [1, 2, 3] TOCHKA [4, 5, 6] [7, 8, 9] > # определение провода 4 точками
I = 0
REPEAT (3) # повторить 3 раза
{
< GND [I+10, 5, H] [3, 2 * D, 1] TOCHKA [9, 8, 7] > # будет 3 провода по 5 точек
MOVE (dx, dy, dz) # подвинуть все начиная от {-скобки до сюда
ROTATE (a, b, c * I) # повернуть
SCALE (-1,1,1) # зеркально отразить вдоль оси OX
I = I + 1
RADIUS = RADIUS + 0.001 # приращение радиуса провода
}
}