реализация алгоритма Брезенхема - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > реализация алгоритма Брезенхема

реализация алгоритма Брезенхема

Ответ
Поиск в этой теме
Непрочитано 01.06.2011, 11:58
реализация алгоритма Брезенхема
1200
 
Регистрация: 01.06.2011
Сообщений: 7

добрый день. в институте задали написать программу под Autocad - брезенхема в виде наклонной линии. может кто нть помочь сделать? я в Autocade мягко говоря не бум-бум. весь нэт перерыл и ничего не нашел...
Просмотров: 12611
 
Непрочитано 01.06.2011, 23:58
#21
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Offtop: у меня смутные подозрения, что автор не знает как запустить написанный за него написанный с посторонней помощью код...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 02.06.2011, 00:18
#22
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от gomer Посмотреть сообщение
1200, мне понято, что вам не понятно ничего... объясните мне, темному человеку, практическую ценность применения алгоритма Брезенхема в среде Автокад
Зачет поставят.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 02.06.2011, 07:16
#23
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


когда я учился у нас ходила поговорка: Преподаватели делают вид, что учат, а студенты делают вид, что учатся...
gomer вне форума  
 
Непрочитано 02.06.2011, 08:29
#24
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 702


Цитата:
Сообщение от gomer Посмотреть сообщение
Преподаватели делают вид, что учат, а студенты делают вид, что учатся...
Нормальный учебный процесс ИМХО. Зачем нам на численных методах был метод Эйлера или Рунге-Кута, где в повседневной жизни он применяется (инженером строителем). Все это для общего развития, пусть учат, потом некогда будет.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 02.06.2011, 08:40
#25
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от 1200 Посмотреть сообщение
это да... поможете переделать?

1200, мой код и так написан на лиспе. Просто я сказал что написал его не "лисповым" стилем. И сделал это умышленно.
Во-первых, потому что, если Тебе этот алгоритм надо сдать преподу в институте, то поверь лучше сдавать именно такой вариант, и во-вторых, как я говорил мой код - перевод кода написанного на С++ в ссылке которую я давал в #3 посте. Я даже имена переменных оставил похожими, чтобы Тебе (если у Тебя конечно есть такое желание) было проще самому разобраться в проге (в данном случае я предположил, что раз уж Ты не знаком с лиспом, то может Ты знаешь другой язык программирования, например С++, и Тебе будет легче разобраться с лисп кодом если он будет написан в Си-подобном стиле).

И еще вопрос, Ты вообще пробывал запустить мой код в Автокаде. Если да, то я не понимаю почему возник вопрос о переводе на лисп, того, что и так на лиспе написано. Если нет, то тогда за что Ты мне говорил

Цитата:
Сообщение от 1200 Посмотреть сообщение
TararykovDG, спасибо большое!
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 02.06.2011, 08:42
#26
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Нормальный учебный процесс
Лучше б уж гарденпаф учились программировать... Хотя это тоже прикольный метод оградки рисовать...
gomer вне форума  
 
Непрочитано 02.06.2011, 08:58
#27
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 702


Цитата:
Сообщение от gomer Посмотреть сообщение
Хотя это тоже прикольный метод оградки рисовать...
А может он раскладку узоров на кирпичных фасадах подбирать станет так алгоритм Брезенхема его до конца дней кормить будет...
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 02.06.2011, 11:15
#28
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


На тебе код на "чыстейшем" лиспе - когда преподователь спросит что это - передай ему от меня пламенный привет.
Код:
[Выделить все]
 (defun brezent (pt1 pt2)
  ((lambda (vector f-rec)
     (f-rec pt1))
   ((lambda (delta)
      (if (not (equal pt1 pt2 0.5))
          (mapcar '(lambda (x)
                     (/ (float x)
                        (apply 'max (mapcar 'abs delta))))
                  delta)))
    (mapcar '- pt2 pt1))
   (lambda (pt1)
     (entmakex (list (cons 0 "circle")
                     (cons 10 (mapcar 'fix pt1))
                     (cons 40 1)))
     (if (not (equal pt1 pt2 0.5))
         (f-rec (mapcar '+ pt1 vector))))))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 02.06.2011, 12:22
#29
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Ну...
Ибо.

Короче, на лиспе, я бы делал так:
Код:
[Выделить все]
 (defun br (p1 p2 / f)
 (defun f (a p1 p2) (br (mapcar '+ p1 (list (cos a) (sin a) 0)) p2))
 (entmakex (list '(0 . "circle") (cons 10 (mapcar 'fix p1)) '(40 . 0.5)))
 (if (equal p1 p2 1) (princ) (f (angle p1 p2) p1 p2)))
Пример вызова:
Код:
[Выделить все]
 (defun c:t1 (/ p1 p2)
 (setq p1 (getpoint)
       p2 (getpoint)
 )
 (entmakex (list '(0 . "line") (cons 10 p1) (cons 11 p2)))
 (br p1 p2)
)
ps. но такое сдавать нельзя - ученик не сможет объяснить, а препод не сможет понять...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/

Последний раз редактировалось Елпанов Евгений, 02.06.2011 в 12:38. Причина: была f не локализованна...
Елпанов Евгений вне форума  
 
Непрочитано 02.06.2011, 12:33
#30
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Евгений - просто класс конечно-же через синусы - нафиг я этот вектор считал!
p.s. - стерто
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 02.06.2011, 12:48
#31
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
через синусы - нафиг я этот вектор считал!
Да, и в итоге, у тебя получилось трехмерное растрирование линии, т.е при использовании трехмерной линии, все кружочки лежат на разных уровнях...
А вообще, я хотел написать код по компактнее. Чтоб преподу поменьше читать было, а студенту учить!
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 02.06.2011, 21:02
#32
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
я бы делал так:
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
А вообще, я хотел написать код по компактнее.
слишком сложно!
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
у тебя получилось трехмерное растрирование линии
ага немного мимо цели...
Все еще проще... И оценку тут ставить не за что...

Код:
[Выделить все]
 (defun brs (p1 p2)
(entmakex (list '(0 . "CIRCLE") (cons 10 (mapcar 'fix p1)) '(40 . 0.5)))
(cond ((equal p1 p2 1.0))
((brs (polar p1 (angle p1 p2) 1.0) p2))))

(defun c:test( / p10 p11 *error*)
  (defun *error* (msg) (princ))
  (and (setq p10 (getpoint "\nНачальная точка: "))
	   (setq p11 (getpoint p10 "\nКонечная точка: "))
	(progn
	  (entmakex (list '(0 . "line") (cons 10 p10) (cons 11 p11)))
	  (brs (list (car p10)(cadr p10)) (list (car p11)(cadr p11))))
  )
  (princ)
)
зы так забавно смотреть на подсветку лисп кода

Последний раз редактировалось gomer, 02.06.2011 в 21:08.
gomer вне форума  
 
Непрочитано 03.06.2011, 00:14
#33
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


gomer, в твоем коде, кружочков будет больше, чем надо, т.е часть из них будет наложена друг на друга...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 03.06.2011, 01:21
#34
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
кружочков будет больше, чем надо, т.е часть из них будет наложена друг на друга...
мдя... не подумал я... каюсь... В #6, #28 вроде наложения не происходит, как у меня и в #29
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > реализация алгоритма Брезенхема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по (entmake MTEXT). Правильная реализация. Tonic Программирование 16 23.03.2011 10:12
Метод конечных элементов. Теория и численная реализация. Городецкий, Евзеров, Стрелец-Стрелецкий, Боговис, Гензерский, 1997 г. Elyon Поиск литературы, чертежей, моделей и прочих материалов 0 19.01.2011 13:53
Реализация алгоритма шифрования AES средствами AutoLisp gomer LISP 20 09.09.2010 11:55
Реализация свободного опирания плиты на балки в SCADе torf_83 SCAD 25 31.07.2007 00:56
Реализация стека Антон87 Программирование 7 23.05.2007 13:59