Каким образом можно прекратить/изменить выполнение RND() или выйти из цикла в случае некорректного значения Rnd ?
В общем есть 7 слоев фрагментов из 16 возможных, необходимо тиражировать по дуге Fragment2 в случайном порядке. В некоторых случаях на одном шаге отображаютcя все слои, вероятно RND принимает значение = 0, а такого слоя не существует, вот и клепает все слои.
Пробовал делать ограничение через Values - тоже не прокатило. Запарился что-то, не могу сообразить как устранить глюк. Конечно можно создать копию на плане и там рэндом примет корректные значения, но сие не есть кашерно.
FOR N=1 to NP
ADD2 0, RAD_out
IF rnd(16) < EPS THEN 7
FRAGMENT2 rnd(16),0
7:
DEL 1
ROT2 ANG
NEXT N
DEL NP
Элемент приложен.
Можно конечно ввести доп. переменную и сгенерировать новое значение напр.
RN=rnd(NC)
IF RN-EPS < rnd(2) THEN RN=1
FRAGMENT2 RN,1
Опять же это лишь случайное устранение проблемы, как собственно и сама RND.
Есть ли другое решение?