1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Блин чё-то вроде сортировку сворганил онаработает не идеально вот проверьте плиз в компиляторе
program My_3D; uses graph,crt; const max=100;
procedure calc(var x,y,z,xt,yt,zt,xan,yan,zan:real); begin Yt:= Y * COS(Xan) - Z * SIN(Xan); Zt:= Y * SIN(Xan) + Z * COS(Xan); Y:= Yt; Z:= Zt; Xt:= X * COS(Yan) - Z * SIN(Xan); Zt:= X * SIN(Yan) + Z * COS(Xan); X:= Xt; Z:= Zt; Xt:= X * COS(Zan) - Y * SIN(Zan); Yt:= X * SIN(Zan) + Y * COS(Zan); X:= Xt; Y:= Yt;
end;
var gd,gm,i,i1,color:integer; modelx4,modely4,modelz4,modelx1,modely1,modelz1,modelx2,modely2,modelz2,modelx3, modely3,modelz3:array[1..max] of real; xan,yan,zan:real; yt,xt,zt:real; sx1,sx2,sx3,sx4,sy1,sy2,sy3,sy4,sz1,sz2,sz3,sz4:integer; arr: array[1 .. 8] of integer; modelfile:text; path:string; zoom:integer; buf1,buf2,buf3,buf4:real; sum1,sum2:integer; j1,j2,j3,j4,j1a,j2a,j3a,j4a:integer;
for i1:=1 to i do begin readln(modelfile,modelx1[i1],modely1[i1],modelz1[i1],modelx2[i1],modely2[i1],mod elz2[i1], modelx3[i1],modely3[i1],modelz3[i1],modelx4[i1],modely4[i1],modelz4[i1]); end;
repeat
setcolor(white); for i1:=1 to i do begin calc(modelx1[i1],modely1[i1],modelz1[i1],xt,yt,zt,xan,yan,zan); calc(modelx2[i1],modely2[i1],modelz2[i1],xt,yt,zt,xan,yan,zan); calc(modelx3[i1],modely3[i1],modelz3[i1],xt,yt,zt,xan,yan,zan); calc(modelx4[i1],modely4[i1],modelz4[i1],xt,yt,zt,xan,yan,zan); end;
for i1:=1 to i-1 do for i1:=1 to i-1 do begin j1:=round(modelz1[i1]); j2:=round(modelz2[i1]); j3:=round(modelz3[i1]); j4:=round(modelz4[i1]); sum1:=j1+j2+j3+j4; j1a:=round(modelz1[i1+1]); j2a:=round(modelz2[i1+1]); j3a:=round(modelz3[i1+1]); j4a:=round(modelz4[i1+1]); sum2:=j1a+j2a+j3a+j4a;
if sum1<sum2 then begin buf1:=modelz1[i1+1]; buf2:=modelz2[i1+1]; buf3:=modelz3[i1+1]; buf4:=modelz4[i1+1]; modelz1[i1+1]:=modelz1[i1]; modelz2[i1+1]:=modelz2[i1]; modelz3[i1+1]:=modelz3[i1]; modelz4[i1+1]:=modelz4[i1]; modelz1[i1]:=buf1; modelz2[i1]:=buf2; modelz3[i1]:=buf3; modelz4[i1]:=buf4;