|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
06.06.2005, 18:14 | #1 | |
нужен LISP для округления координат.
Бизнес-шмизнес
Питер
Регистрация: 26.05.2004
Сообщений: 1,911
|
||
Просмотров: 3950
|
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Наверно длинновато будет:
; Округление до знака (defun fixed (n m) (cond ((<= (- (* 1. (fix (* (- n (fix n))(expt 10. (1+ m))))) (* 10. (fix (* (- n (fix n))(expt 10. m))))) 5.) (+ (fix n)(/ (fix (* (- n (fix n))(expt 10. m)))(expt 10. m)))) (T (+ (+ (fix n)(/ (fix (* (- n (fix n))(expt 10. m)))(expt 10. m))) (/ 1. (expt 10. m)))))) ;;;(fixed 8.5625897 4) А координаты можно через mapcar (..... |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Пока что невидно четкой постановки задачи. Я так понял что тебе нужно перерисовывать линии и полилинии с округлёнными до определённого знака координатами. Так? Что то подобное я уже на этом форуме писал, правда только для линий и значение координат округлялись до целого. Вот насчет проверки на вертикальность и горизонтальность надо ещё выяснить поподробнее. Я так понимаю что если линия невертикальна/негоризонтальна в пределах определённого допуска то после обработки таким лиспом она должна становится вертикальной/горизонтальной. Или по крайней мере лисп должен отмечать подобные "спорные" линии к примеру отрисовкой по верху красной линией и потом поочередно предлагать пользователю принять решение - оставить так/перерисовать сделав выравнивание координат.
Это вообще для чего нужно? Какие то чертежи полученные после векторизации? |
|||
|
||||
Бизнес-шмизнес Регистрация: 26.05.2004
Питер
Сообщений: 1,911
|
Ты все правильно понял...
Все это нужно для сборки расчетной схемы в каде... 1. Округление координат - ибо нафик мне тысячные миллилитра? которые невозможно все отследить (не все архитекторы пряморуки) 2. Проверка вертикальности - для того чтобы если после округления одна вершина округлилась в одну сторону... а другая в другую... то линия будет не вертикальна... а мне нужно чтобы те линии которые я хочу были округленные и... вертикальные... Чо-то я непонятно наверное написал хотя горизонтальность не обязательна И еще вопрос... можно ли "выделить только вершины... и приравнять их кординаты к N? это было бы вообще здорово... |
|||
|
||||
свободный художник (freelancer) Регистрация: 24.04.2005
Сообщений: 58
|
есть CoordinatesPrecision команда в http://www.kitox.com/downloads/kitox-toolset.zip
|
|||