⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pythagoras.pl

📁 PRl教学程序 PRl教学程序 PRl教学程序
💻 PL
字号:
go:-
    pythagoras(Ps),
    cgJava(pythagoras,Ps).

pythagoras([P|Ps]):-
  cgSquare(S),S^fill #=0,
  S^x #=400,
  S^y #=500,
  S^width #=100,
  rectToPolygon(S,P),
  pythagoras(P,6,Ps,[]).

rectToPolygon(S,P):-
    cgPolygon(P), P^n #= 4,
    P^color #= lightGray,
    P^point(0) #= S^leftTopPoint,
    P^point(1) #= S^leftBottomPoint,
    P^point(2) #= S^rightBottomPoint,
    P^point(3) #= S^rightTopPoint.

pythagoras(P,N,Ps,PsR):-N=:=0,!,Ps=PsR.
pythagoras(P,N,Ps,PsR):-
    Ps=[T,P2,P3|Ps1],
    constrainTri(P,T),
    newPL(P,T,P2),
    newPR(P,T,P3),
    N1 is N-1,
    pythagoras(P2,N1,Ps1,Ps2),
    pythagoras(P3,N1,Ps2,PsR).


 constrainTri(P,T):-
    cgTriangle(T),
    T^color #= cyan,
    T^x2 #= P^x(0),
    T^y2 #= P^y(0),
    T^x3 #= P^x(3),
    T^y3 #= P^y(3),
    T^x1 #= P^x(0) + P^x(3) - (P^x(0) + P^x(2))//2,
    T^y1 #= P^y(0) + P^y(3) - (P^y(0) + P^y(2))//2.


 newPL(P,T,PL):-
   cgPolygon(PL),
   PL^n #= 4,
   PL^color #=lightGray,
   PL^x(1)  #= T^x1,
   PL^y(1) #= T^y1,
   PL^x(2) #= P^x(0),
   PL^y(2) #= P^y(0),
   PL^x(3) #= 2*P^x(0) - (P^x(2)+ P^x(0))//2,
   PL^y(3) #= 2*P^y(0) - (P^y(2)+ P^y(0))//2,
   PL^x(0) #= P^x(0) + P^x(3)- P^x(2),
   PL^y(0) #= P^y(0) + P^y(3) - P^y(2).

 newPR(P,T,PR):-
   cgPolygon(PR),
   PR^n #= 4,
   PR^color #=orange,
   PR^x(1)  #= T^x1,
   PR^y(1) #= T^y1,
   PR^x(2) #= P^x(3),
   PR^y(2) #= P^y(3),
   PR^x(3) #= 2*P^x(3) - (P^x(2)+ P^x(0))//2,
   PR^y(3) #= 2*P^y(3) - (P^y(2)+ P^y(0))//2,
   PR^x(0) #= 2*P^x(3)- P^x(2),
   PR^y(0) #= 2*P^y(3) - P^y(2).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -