Yes.
STriangle
Here is an almost complete STriangle
.
The recursive calls are not quite finished.
STriangle( Color color, int order, int limit, double x0, double y0, double x1, double y1, double x2, double y2 ) { // Calculate midpoints of the three sides double xL = (x0+x1)/2.0; double yL = (y0+y1)/2.0; double xR = (x1+x2)/2.0; double yR = (y1+y2)/2.0; double xB = (x0+x2)/2.0; double yB = (y0+y2)/2.0; // If the depth limit has not been reached, // construct the current triangle as three hollow little triangles // recursively using this very method. if ( order < limit ) { order++ ; STriangle triL = new STriangle( color, order, limit, ); // lower left STriangle triR = new STriangle( color, order, limit, ); // lower right STriangle triT = new STriangle( color, order, limit, ); // top getChildren().addAll( triL, triR, triT ); } // If the depth limit has been reached, // construct the current triangle as three solid little triangles else { Polygon triL = new Polygon( x0, y0, xL, yL, xB, yB ); // lower left triL.setFill( color ); Polygon triR = new Polygon( xB, yB, xR, yR, x2, y2 ); // lower right triR.setFill( color ); Polygon triT = new Polygon( xL, yL, x1, y1, xR, yR ); // top triT.setFill( color ); getChildren().addAll( triL, triR, triT ); } } }
The variable TriL
in the true-branch of the if-
statement is a
different variable than TriL
in the false-branch because of Java scoping rules.
Recall that the scope of a variable is the section of code in which it may be used.
The scope of a variable declared in a block from where it was declared to the end of the block, only.
Fill in the missing parameters.