Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- default
- {
- //Decides if a point at a specific location is filled or not.
- //param x is the x coordinate of the point being checked
- //param y is the y coordinate of the point being checked
- //param width is the width of the Sierpinski Carpet being checked
- //param height is the height of the Sierpinski Carpet being checked
- //return 1 if it is to be filled or 0 if it is not
- integer isSierpinskiCarpetPixelFilled(integer x, integer y, integer width, integer height)
- {
- // base case 1 of 2
- if (x<1){
- return 0;
- }
- //If the grid was split in 9 parts, what part(x2,y2) would x,y fit into?
- integer xTwo = x*3/width; // an integer from 0..2 inclusive
- integer yTwo = y*3/height; // an integer from 0..2 inclusive
- // base case 2 of 2
- if (xTwo == 1 && yTwo == 1){ // if in the centre squaure, it should be filled.
- return 1;
- }
- // general case
- //offset x and y so it becomes bounded by 0..width/3 and 0..height/3
- return isSierpinskiCarpetPixelFilled(x-(xTwo*width/3), y-(yTwo*height/3), width/3, height/3);
- }
- state_entry()
- {
- integer width = 30;
- integer height = 30;
- for (integer j=0; j<height; j++){
- string row = "";
- for (integer i=0;i<width;i++)
- {
- row += (string)isSierpinskiCarpetPixelFilled(i,j,width,height);
- }
- llSay(0, row);
- }
- }
- touch_start(integer total_number)
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement