Страница 1 из 3
Помощь с курсовой. Вложенные треугольники.
Добавлено: 24 дек 2014, 20:10
kthrj
Для курсовой( C++ Builder) нужно написать программу "Вложенные треугольники с закругленными углами"..Помогите пожалуйста
Re: Нужна срочная помощь с курсовой
Добавлено: 24 дек 2014, 20:36
Romeo
Помогите или напишите? Помогать готов, писать нет.
Re: Нужна срочная помощь с курсовой
Добавлено: 24 дек 2014, 20:52
kthrj
Romeo писал(а):Помогите или напишите? Помогать готов, писать нет.
Помочь написать.Проблема в том что я не работала в с++, а только в паскале..и вообще не могу представить эту картинку
Re: Нужна срочная помощь с курсовой
Добавлено: 24 дек 2014, 21:41
Romeo
Что-то типа этого? Прошу не бить за кривость рисунка: набросал на скорую руку в mspaint.
Re: Нужна срочная помощь с курсовой
Добавлено: 24 дек 2014, 22:06
kthrj
Romeo писал(а):Что-то типа этого? Прошу не бить за кривость рисунка: набросал на скорую руку в mspaint.
Ой мамочки, скорее всего да..Т.е надо еще будет координаты указывать ?
Re: Нужна срочная помощь с курсовой
Добавлено: 25 дек 2014, 12:55
Romeo
А научный руководитель вообще никаких указаний не дал? Только тему?
Ну вообще, это даже хорошо. Значит можно сделать так, как сам это видишь. Можно не задавать координаты, можно всё захардкодить: и размеры и количество треугльников и радиус скругления вершин.
Теперь о том, как делать само скругление. Предлагаю следующий вариант.
1. Берёшь, бумажку, рисуешь на ней равносторонний треугольник.
2. Во внутренний угол треугольника вписываешь маленькую окружность так, чтобы она касалась двух сторон, образующих угол.
3. Делая несложные дополнительные построения вычисляешь длину кусочков сторон треугольник от угла, до точек касания с окружностью (эти кусочки не станем рисовать) и координаты центра окружности. Всё нужно выразить через a - сторону треугльника и r - радиус окружности.
4. Всё это проделываешь с каждой вершиной треугольника.
5. Затем рассчитываешь координаты отрезков (частей каждой стороны треугольника), которые соединят окружности точки касания окружностей, установленных в вершинах.
6. Затем рассчитываешь значения углов начала и конца дуг, лежащих между точек касания (либо координаты точек касания, всё зависит от того, что требует графическая функция, рисующая дугу).
7. Последняя хитрость - делаем r зависимым от a, чтобы при уменьшении размера треугольника скругления тоже уменьшались, иначе в случае маленького треугольника скругления поглотит почти всю сторону. Скажем r = a/20.
Всё это оформляем как отдельную функцию, которая рисует треугольник. Функция должна получать точку центра треугльника и длину стороны. Всё остальные у нас будет посчитано относительно этих двух величин, так что нарисовать скргулённый треугльник не будет проблемы.
Как ты догадалась, последний шаг уже прост. Нужно в цикле вызвать нашу функцию несколько раз, передав одни и те же координаты в качестве центра треугольника, и уменьшая длину стороны на каждой следующей итерации.
Прикрепляю разъясняющий рисунок прорисовки одного из углов. Красным отмечена видимая часть. Чёрные части должны быть скрыты.
Re: Помощь с курсовой. Вложенные треугольники.
Добавлено: 25 дек 2014, 13:08
kthrj
К сожалению не дал рекомендаций. А с остальными треугольниками так же делать? И вот еще вопрос с чего начинать программу.
Re: Помощь с курсовой. Вложенные треугольники.
Добавлено: 25 дек 2014, 13:23
Romeo
kthrj писал(а):
А с остальными треугольниками так же делать?
Остальные треугольники нарисуются благодаря многократному вызову функции, рисующей один треугольник. Ещё раз прочти внимательно вот это:
Romeo писал(а):
Как ты догадалась, последний шаг уже прост. Нужно в цикле вызвать нашу функцию несколько раз, передав одни и те же координаты в качестве центра треугольника, и уменьшая длину стороны на каждой следующей итерации.
kthrj писал(а):
И вот еще вопрос с чего начинать программу.
В каком смысле с чего начинать? Ты не писала ещё на С++ даже Hello world? Или я вопрос не понял? А то сейчас сюда Hello world напишу, а ты обидишься.
Re: Помощь с курсовой. Вложенные треугольники.
Добавлено: 25 дек 2014, 13:40
kthrj
Нет, я вообще не работалА в С++.В этом и проблема
Re: Помощь с курсовой. Вложенные треугольники.
Добавлено: 25 дек 2014, 13:49
Romeo
Ну вот вариант Hello world.
Код: Выделить всё
#include <iostream>
#include <string>
int main()
{
std::string strUser;
std::cout << "Enter your name: ";
std::cin >> strUser;
std::cout << "Hello, " << strUser << std::endl;
return 0;
}
Для того, чтобы рассказать, как с графикой работать, придётся узнать какой компилятор и под чем будешь компилировать программу.
А вообще, чтобы разобраться с азами синтаксиса проще всего будет открыть любую простенькую методичку, коих в интернете пруд-пруди и полистать её.