Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Object Pascal: кроссплатформенные технологии > Ромб в граф режиме |
Автор: 4ipalino 24.3.2008, 21:02 |
Доброе время суток... Подскажите пожалуйста,как сделать так чтобы ромб двигался по периметру трехугольника и как нарисовать этот робм) |
Автор: profispb 24.3.2008, 23:10 |
И опять математика, я понять не могу... вы что хотите программировать не зная элементарной математики? НЕ выйдет! Эту задачку в третьем классе дети решают....)) Исходные данные площадь треугольник, площадь ромба и крути с ними как хошь))) |
Автор: Alix 25.3.2008, 09:46 | ||
Ну ладно... вот матека. Тут все, правда, зависит от того, как задан треугольник. Я буду считать, что он задан координатами своих вершин: (x1, y1), (x2, y2), (x3, y3). Все что нужно - построить функцию вида y[x] для перемещения по отрезкам между вершинами. Как известно, прямую между двумя точками можно задать так: (y - y1) / (y2 - y1) = (x - x1) / (x2 - x1). Значит фукнцию y[x] можно записать как-то так:
Самое главное тут учитывать, что y[x2] не факт что будет равно y2, т.к. возможны погрешности. С другой строны здесь же round, а не trunc какой-нибудь... Таким образом легко, идя от вершины к вершине и потом назад к первой, пройти по сторонам треугольника. Вершины могут быть заданы массивом 0..2. И двигаться будем между current и (current + 1) mod 3. Осталось нарисовать ромб. Думаю он может быть задан своими... эээ.... я забыл как их зовут, диагонали? В общем тут даже пояснять не буду - центр ромба есть, а найти его вершины легко. Если, конечно, его диагонали не должны быть наклонены так же как и текущее ребро треугольника. Будем надеяться что такой изврат не нужен. Добавлено через 1 минуту и 47 секунд profispb, твой ход ![]() |