本文介紹了畫圓(使用應用于帶有for循環的圖像中的像素)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我想使用像素位置(從左上角開始,右下角結束)畫一個圓(1或2表示循環)
我使用此方法成功繪制了一個矩形:
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();
但我如何才能像此圖像一樣只繪制白色像素而忽略其他像素?
推薦答案
以下是使用像素繪制圓的代碼:它使用公式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 = 3.1415926535;
double i, angle, x1, y1;
for(i = 0; i < 360; i += 0.1)
{
angle = i;
x1 = r * cos(angle * PI / 180);
y1 = r * sin(angle * PI / 180);
putpixel(x + x1, y + y1, color);
}
}
引用:http://www.softwareandfinance.com/Turbo_C/DrawCircle.html
這篇關于畫圓(使用應用于帶有for循環的圖像中的像素)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,