1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 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;