Jump to content

Recommended Posts

Posted

Hi, I'm using this code to draw a filled circle at the given coordinates with the block that's given:

public static void fillCircle(World world, int x, int y, int z, int radius, Block block) {
	while(radius != 0) {
		for(int i = 0; i < 360; i++){
			world.setBlock((int) (x + radius * Math.cos(i)), y, (int) (z + radius * Math.sin(i)), block);
		}

		radius--;
	}
}

 

The above code isn't the most efficient (I think) and sometimes produces this:

Jg3JNUP.png

at some radius sizes.

 

 

Is there any other efficient way of doing this?

Kain

Posted

I don't think you need to worry much about efficiency if it is something that is only done occasionally.

 

In terms of it looking more even, that is a matter of adjusting the round-off in mapping to the block positions.  I think maybe adding 0.5 to the x, y, and z might make it more even.  In otherwords imaging drawing a perfect circle on some graph paper.  You need the center of that perfect circle to be in the center of the center block.  If it is at one edge then the outer edges will have aliasing irregularities versus the opposite side.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.