Graphics Reference
In-Depth Information
while notdone do
begin
aPt.x := (Pt1.x + Pt2.x)/2.0;
aPt.y := (Pt1.y + Pt2.y)/2.0;
aC := ExtendedCsCode (aPt);
if TwoBitCase (aC)
then
begin
if aC = endC
then Pt2 := aPt
else
begin
if aC = startC
then Pt1 := aPt
else notdone := false
end
end
else
begin
if (aC and endC) π 0
then aC := endC + Tcc[startC and not (TWOBITS)]
else aC := startC + Tcc[endC and not (TWOBITS)];
notdone := false ;
end
end
end ; { BothAreTwoBits }
procedure OneBitEndPoint ()
{ The line has been rejected and we have a 1-bit endpoint. }
if TwoBitCase (startC)
then
begin
if (startC and endC) = 0 then
endC := startC + Tcc[endC];
end
else
begin
endC := endC or startC;
if Tcc[endC] = 1 then endC := endC or TWOBITS;
end ; { OneBitEndPoint }
Algorithm 3.3.4.2. Continued
Search WWH ::




Custom Search