2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Хранение форм предметов и создание их проекций
Сообщение26.07.2013, 19:14 
Помогите поразмышлять и написать алгоритм такой программы:

1) Хранит формулу (алгоритм, образ) описывающую прямую линию в трехмерном пространстве
2) Создает по формуле двумерное пиксельное (из квадратиков) изображение линии (имитирующее трехмерность),
а также учитывает входные параметры, типа:
- шаг (единица измерения),
- длина,
- система координат (?),
- точка (центр) отсчета и вращения,
- углы поворота от центра и между XY, XZ, YZ,
- какие-то параметры характеризующие пространство, на которое создается проекция линии (?)
- и т.п. (?)

С практической точки зрения хотелось бы добиться возможности создавать изображение линии в любом разрешении и ракурсе.

Список параметров носит скорей характер наброска и может измениться в процессе обсуждения решения данной задачи.

PS Я не специалист по математике и геометрии.

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение26.07.2013, 21:56 
Аватара пользователя
Тут не алгоритм нужен, тут надо использовать готовые бибилиотеки компьютерной графики типа OpenGL.

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение26.07.2013, 22:48 
Xaositect в сообщении #749459 писал(а):
Тут не алгоритм нужен, тут надо использовать готовые бибилиотеки компьютерной графики типа OpenGL.


Мне как раз нужно обойтись без подобных "высокоуровневых" решений! Даже без использования математических степеней, корней и т.д. (то есть только самые низкоуровневые операции типа сложения, умножения). Просто в этом и есть вся суть задачи, чтобы расписать все на "атомарном" уровне.

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение26.07.2013, 23:14 
Аватара пользователя
Хм. Интересно, зачем это может понадобиться в наше время.
Ну тогда так. Для рисования отрезка на проскости смотрите алгоритм Брезенхема.
А для того, чтобы по трехмертной прямой вычислить ее двумерную проекцию, придется разбираться с проективной геометрией и матрицами.
Посмотрите, например, книжку Шикин, Боресков "Начала компьютерной графики"

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение06.08.2013, 12:43 
Алгоритм Брезенхама, да. Ну и может быть, для начала аксонометрические проекции подойдут (погуглите), это просто и без матриц :).

Цитата:
Интересно, зачем это может понадобиться в наше время.

Например, для 8-битных микроконтроллеров + 3-Д светодиодный экран.

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение24.08.2013, 16:36 
Спасибо за ответы!

Вопрос возник из-за моего общего желания разобраться (понять), что такое пространство, форма, движение и т.д.

Сейчас вот застрял на вопросе:
Изображение

Варианты а) и б) это такое перемещение предмета, когда расстояние до клетки вверх(вниз,влево,вправо) или до клетки по диагонали - равно (точнее сказать понятие расстояния не существует).

Варианты в) и г) это примерное(!) перемещение предмета, которое должно соответствовать нашему ощущению действительного пространства, а следовательно в варианте г) расстояние до клетки вверх или по диагонали должны быть разными и к тому же между ними (или двумя измерениями) должна быть связь (зависимость), которую в меру своей нематематичности я смог выразить только в виде того, что предмет как бы частично остался где был и частично переместился на новое место. Собственно вопрос в том, откуда взялась эта связь (зависимость) и как она рассчитывается или какая формула ее описывает. Можно ли сказать что знание об этой связи было нами получено умозаключительно, опытно или может даже врожденно.

 
 
 
 Re: Хранение форм предметов и создание их проекций
Сообщение24.08.2013, 21:06 
Аватара пользователя
Могу только сказать, что правый нижний рисунок похож на антиалиайзинг, проще говоря, когда нам не хватает пространственного разрешения (квадратик переместился на 3/4 вверх и на 3/4 вправо), мы его имитируем цветовым разрешением (там, правда, ещё возникнут цвета в соседних квадратиках, но это уже детали). Антиалиайзинг позволяет добиться более реалистичного изображения на устройстве с небольшим разрешением за счёт некоторой размытости.
svetohod писал(а):
...как она рассчитывается или какая формула ее описывает.
Антиалиайзинг рассчитывается так: на пиксельной сетке мысленно рисуем истинное положение фигуры (не попадающее в границы ячеек), затем смотрим, какие пиксели закрыты нашим изображением полностью (там будет белый цвет), а какие частично (они раскрашиваются в серый интенсивностью, пропорциональной доле площади фигуры, попавшей в пиксель относительно площади самого пикселя). Например, в нашем примере (3/4 вверх и 3/4 вправо) в исходном (левом нижнем) пикселе будет серый оттенок 1/16 интенсивности белого, в центральном — 9/16, и в боковых — по 3/16.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group