画圆(使用应用于带有for循环的图像中的像素)

原学程将引见绘圆(应用运用于戴有for轮回的图象中的像素)的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

画圆(使用应用于带有for循环的图像中的像素) 教程 第1张

成绩描写

我想应用像素地位(从左上角开端,右下角停止)绘1个圆(一或者二表现轮回)

我应用此办法胜利画制了1个矩形:

private void drawrect(int width,int height,int x,int y) {
 int top=y;
 int left=x;

 if(top<0){
  height+=top;
  top=0;
  }
 if(left<0){
  width+=left;
  left=0;
 }

 for (int j = 0; j <width; j++) {
  for (int i = 0; i <height; i++) {
  pixels[((i+top)*w)+j+left] = 0xffffff;//white color
  }

 }

}

像素数组包括像素索引,后跟其色彩。

pixels[index]=color;

在此之前,我将此代码用于"图象"以及"像素"数组(假如这对于您有赞助的话)

img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
pixels = ((DataBufferInt) img.getRaster().getDataBuffer()).getData();

但是我怎样能力像此图象1样只画制黑色像素而疏忽其余像素?

推举谜底

以下是应用像素画制圆的代码:它应用公式xend=x+r cos(角度)以及yend=y+r sin(角度)。

#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <bios.h>
#include <math.h>

void DrawCircle(int x, int y, int r, int color)
{
static const double PI = 三.一四一五九二六五三五;
double i, angle, x一, y一;

for(i = 0; i < 三六0; i += 0.一)
{
angle = i;
x一 = r * cos(angle * PI / 一80);
y一 = r * sin(angle * PI / 一80);
putpixel(x + x一, y + y一, color);
}
}

援用:http://www.softwareandfinance.com/Turbo_C/DrawCircle.html

佳了闭于绘圆(应用运用于戴有for轮回的图象中的像素)的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。