Написать программу на языке С# для анализа фигуры, составленной из симплексов.
Программа должна считывать данные о точках и координатах этих точек из внешнего файла, находить внутренние симплексы и выводить информацию о них во внешний файл.
Т. е. нужно считать файл, распознать данные и записать их в массивы, создать массив граней и провести анализ встречаемости гране, нарисовать на экране треугольники. выделив разным цветом внешние и внутренние, сохранить координаты и вершины внутреннего треугольника в файл.
Входные файлы:
5 (треугольников)
0,2,1
2,3,4
4,6,5
4,5,1
4,1,2
7 (точек)
75,60
90,85
45,85
20,60
45,35
90,35
90,40
Кому не сложно, помогите, пожалуйста.

Вы уверены на все 100% что условия задачи даны правильно?
Постараюсь пояснить алгоритм, (он простой) , но на все 100% решить именно на С# не могу
т. к моя среда UNIX/Linux, мои языки Perl\PHP\Py\C++ (((
Некоторые условия вызывают не большие сомнения.
Чтобы вы понимали,
Будем использовать Pseudo-C.
1. Этап
Программа должна считывать данные о точках и координатах этих точек из внешнего файла
То есть эти данные должны хранится в не ассоциативном эррейе, создаем массив, (хранить в стрингах последовательность ---это извращение) ) )
Итак,
Нужно инициализировать массив:
triangle = Array (
'0,2,1',
'2,3,4',
'4,6,5',
'4,5,1',
'4,1,2',
);
2. Этап
--> находить внутренние симплексы и выводить информацию о них во внешний файл (между прочим, сохранять можно как угодно, а здесь это пропущено (( )
т. е прогулятся по массиву и сохранить каждый элемент
char file;
//Для Удобства:
void handle_file (int val){
//пусть будет file.txt в исходной директории
file = fopen('file.txt', '+w');
if ( file ){
//ок файл не пустой
fwrite(val + "\n", '+w');
} else {
//файл пустой
}
}
for_each ( triangle as key ){
//луп завершится когда исходный эррэй достигнет конца
handle_file(key);
}
3.Этап
создать массив граней и провести анализ встречаемости гране --> это в каком смыле?? ?
Ок. массив мы создали, НО НЕ ЯСНО что значит "провести анализ встречаемости граней" ---фигура обьемная или нет? Треугольники текущего состава ---в данном случае пифагоровы.
Да, на рисунке она выглядит обьёмной, Но ОТСУТСТВЕТ линия отделения / разделения внизу и сверху. Мне не очень ясно что это. Извините.
4. Этап
выделив разным цветом внешние и внутренние, сохранить координаты и вершины внутреннего треугольника в файл.
Будем просто использовать контрольные структуры IF/SWITCH во время цикла.
//вегерская нотация + пре-инкремент для оптимизации:
for (i=1; i < 7; ++i){
switch(i){
case 1: //делаем выделения красным
case 2: //зеленым итд продолжаем до 7
}
}
//аналогично с треугольками
5. Этап
Я не знаю есть ли поддержка гр. библиотеке GD в вашей IDE,
поэтому будем использовать, cимволы ---\ / _ - | для рисования
|\
| \
| \
|___\
вот так
каждый символ будем считать за 1 см,
исходя из этого можно создать 3 вложенных цикла
//чтобы легче считать, подставляйте 0 вместо х:
int pifagor(int a, int b, int c){
if ( !a || a == 0 ){
return (b * b) = c*c;
}
if ( !b || b == 0){
return (a * a) = c*c - (b * b);
}
if ( !c || c == 0 ){
return (a * a) + (b * b);
}
}
//"рисуем" на экране
for ( ..условия гипотенузы ..){
for( пр. катет ){
for ( пртв. катет ){
//
}
}
}