Трёхмерная графика, Пирамида |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Трёхмерная графика, Пирамида |
art88 |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: 0 |
Задача
Изобразить линию сечения правильной шестигранной пирамиды плоскостью, заданной коэффициентами своего уравнения(Основание пирамиды лежит в плоскости XOY, высота совпадает с осью Z) ---------------------------------------------------------- Проблема Подскажите, как лучше потроить усечённую пирамиду, если я знаю взаимное расположение плоскости и каждой грани(точку пересечения или то, что они параллельны или, что грань лежит в плоскости). ---------------------------------------------------------- Программа Рисует пирамиду(DrawPyr), оси координат(DrawAxes), может находить взаимное расположение граней и плоскости(Interception). (См. Pyramid.pas). Прикрепленные файлы PYRAMID.PAS ( 2.66 килобайт ) Кол-во скачиваний: 336 |
volvo |
Сообщение
#2
|
Гость |
Цитата программа находит по одной точке пересечения плоскости и треугольника Знаешь, почему это происходит? Программа-то может и находила бы больше, НО !!! 1. procedure Interception(l: tLine; s: tPlane);А если эту строку НЕ добавить, то после того, как хотя бы один раз intercept будет True, значение False он уже никогда не примет... Это первое. 2. procedure PlaneTri(p: tPlane; t: tTriangle); Если оставить 1 .. 2, то возможна порча значений, хранящихся в стеке ПОСЛЕ aInt (это могут быть данные или код программы)... 3. Измени направление вектора AC в треугольнике (процедура PlaneTree): { вместо } После внесения изменений ЧЕГО-ТО чертится, но я не уверен, что именно то, что нужно. Проверь... Кстати, можно внести еще несколько мелких улучшений, чтобы сократить объем программы. Нужно? |
Текстовая версия | 18.05.2024 12:28 |