Assignment 3.1 - 20BCE7124

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

School: SCOPE Semester: Win Sem 2021-22

Subject: Computer Graphics (Lab) Subject Code: CSE2006


Assignment 3.1

NAME: Piyali Kar


Registration No: 20BCE7124

1. Write a program to implement Mid-point/Bresennham’s Ellipse Drawing


Algorithm.

Expected Output:

Code: -

void setup(){

size(600,600);

fill(200,0,10);

text("Piyali Kar",100,250);

text("20BCE7124",100,270);

void draw(){

Ellipse();

void Ellipse(){
float rx=100;

float ry=50;

float xc=300;

float yc=300;

text("Center of Ellipse: 300 300", 200,150);

text("Length of Major and Minor Axis: 100 50", 200,170);

float dx, dy, d1, d2, x, y;

x = 0;

y= ry;

d1 = (ry * ry) -(rx * rx * ry) +(0.25f * rx * rx);

dx = 2 * ry * ry * x;

dy = 2 * rx * rx * y;

while(dx < dy){

point(x + xc,y + yc);

point(-x + xc, y + yc);

point(x + xc, -y + yc);

point(-x + xc, -y + yc);

if (d1 < 0){

x++;

dx = dx + (2 * ry * ry);

d1 = d1 + dx + (ry * ry);

}else{

x++;

y--;

dx = dx + (2 * ry * ry);

dy = dy -(2 * rx * rx);
d1 = d1 + dx -dy + (ry * ry);

d2 = ((ry * ry) * ((x + 0.5f) * (x + 0.5f))) + ((rx * rx) * ((y -1) * (y -1)))-(rx * rx * ry * ry);

while (y >= 0) {

point(x + xc,y + yc);

point(-x + xc,y + yc);

point(x + xc,-y + yc);

point(-x + xc,-y + yc);

if (d2 > 0) {

y--;dy = dy -(2 * rx * rx);

d2 = d2 + (rx * rx) -dy;

}else {

y--;

x++;

dx = dx + (2 * ry * ry);

dy = dy -(2 * rx * rx);

d2 = d2 + dx -dy + (rx * rx);

Output: -

You might also like