dimitriy7
 
  
  BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору A1exSun   Про чтение координат уже писал, если еще и линии нужны:      В раздел описаний добавь (если какие-то переменные/типы уже описаны - замени их):    Код:    {$I-}   const   nm=80;   cm=60;      type Matrix = array[0..nm,0..nm] of single;      var   n: integer; {кол-во точек, с нумерами от 0 до n-1}   c: integer; {кол-во плоскостей в фигуре = кол-во СТРОК в нижнем блоке чисел}   i,j: integer;   tmp1,tmp2,tmp3: byte;   lines: array[0..cm,0..10] of byte;   m, t: Matrix;   p: array[0..nm] of Point3D;    maswtab: single;   CoordFile: text;     |         В тело программы (в самое начало, сразу после главного BEGIN):     Код:    maswtab:={коэффициент масштабирования координат из файла};   assign(CoordFile,'имя_файла');   reset(CoordFile);   read(CoordFile,n,c,tmp1);   for i:=0 to n-1 do       begin       read(CoordFile,p[i].x,p[i].y,p[i].z);       p[i].p:=1;       p[i].x:=p[i].x*maswtab;       p[i].y:=p[i].y*maswtab;       p[i].z:=p[i].z*maswtab;       end;   for i:=0 to c-1 do       begin       read(CoordFile,lines[i,0]);       for j:=1 to lines[i,0] do read(CoordFile,lines[i,j]);       read(CoordFile,tmp1,tmp2,tmp3);       end;   close(CoordFile);     |         В тело программы (везде где строим фигуру - вместо кучи Line3D() ):     Код:    for i:=0 to c-1 do       begin       for j:=1 to lines[i,0]-1 do Line3D(m,p[lines[i,j]],p[lines[i,j+1]]);       Line3D(m,p[lines[i,lines[i,0]]],p[lines[i,1]]);       end;     |         Соответственно - файл копипастом с того сайта, включая первую строчку со служебной информацией например так:         Добавлено:   Это всё для новых названий переменных )      И ещё:   1) переменные внутрь процедур ВСЕГДА передавай ссылкой (т.е. с помощью слова var), иначе рискуешь получить переполнение стека.   1) все вещественные типы замени на single - иначе банально в сегмент памяти не впишешься. Или если хочешь поточнее - можешь сделать double, тогда ограничь макс. возможное кол-во точек и плоскостей:   const   nm=60;   cm=40;    |   Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено:  23:28 09-02-2012  | Исправлено: dimitriy7,   00:48 10-02-2012    |  
  |