gris заставил меня мечтать о гемоетрическом языке, чтобы можно было опытно решать/проверять геометрические задачки. Например:
1) Нужна иллюстрация к задачке (мол дан параллелограмм, такие-то точки делят стороны в таком соотношении, такие-то линии, бубубу...): написал эти условия и программа выводит картинку (хотя бы в metapost или postscript, это легче реализовать).
2) Проверить перебором разные случаи, вот шутка от
gris'а:
Код:
try(10000) {
eval(max(abs(diff(DQ,QC)))) for config {
main: circ(0:O; random);
P(random);
intercept(tangent(P,main),main):{A,B);
intercept(line(P;random),main):{C,D};
intercept(parallel(B,CD),main):E;
intercept(line(CD),line(EA):Q
};
picture(config.last,gif(500,400,72,transparent))
}
3) Опытно решить задачку. Например взять произвольный треугольник, провести медианы и опытно проверить, в каком соотношении деляться медианы. Это пример, а в реальности может понадобится проверить сложную задачку.
...
Я не программист и не представляю как реализовать что-то даже отдалённо напоминающее такой язык, но для профессионалов, я думаю, это будет не так сложно. Может кто-нибудь напишет что-то подобное?
-- Пн сен 27, 2010 19:39:04 --Т. е. в общем идея языка такая: есть некая доска, типа board. На неё помещаем разные объекты (точки, линии и т. п.). Можно определять их либо произвольно (random), либо явно (координаты и т. п.), либо через уже заданные объекты (напр. точку как пересечение двух прямых).
Затем эту доску можно много раз перерисовать, если есть вызов random, с целью получить какое-то значение (собрать всю статистику или выделить макс., минимальное значение). Можно доску вывести в граф. файл.