Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // MidPointCircleAlgorithm
- //
- // Created by Daniel Olamide on 20/09/2019.
- // Copyright © 2019 Daniel Olamide. All rights reserved.
- //
- #include<iostream>
- using namespace std;
- void transformer(int x, int y, int y_center, int x_center){
- int choice =0;
- while (choice < 8) {
- switch (choice) {
- case 0:
- x = x + x_center;
- y = y + y_center;
- break;
- case 1:
- y = x + x_center;
- x = y + y_center;
- break;
- case 2:
- x = -(y + y_center);
- y = x + x_center;
- break;
- case 3:
- x = -(x + x_center);
- y = y + y_center;
- break;
- case 4:
- x = -(x + x_center);
- y = -(y + y_center);
- break;
- case 5:
- x = -(y + y_center);
- y = -(x + x_center);
- break;
- case 6:
- x = y + y_center;
- y = -(x + x_center);
- break;
- case 7:
- x = x + x_center;
- y = -(y + y_center);
- default:
- break;
- }
- choice++;
- cout << "X : "<<x<<" Y : "<<y<<endl;
- // cout << "X_Node: "<<x<<" Y_Node: "<<y<<endl;
- cout<<endl;
- }
- }
- void midPointCircle(int x_center,int y_center,int radius){
- //Initialize decision
- int p = 1 - radius;
- // int x_plots, y_plots;
- int x = 0;
- int y = radius;
- int iterations = 0;
- cout<< "Iteration : "<<iterations<<endl;
- cout << "P :"<<p<<endl;
- if(p < 0){
- p = p + 2*x + 3;
- x++;
- }
- else{
- p = p + (2*x) - (2*y) + 5;
- y--;
- x++;
- }
- transformer(x, y, y_center, x_center);
- iterations++;
- while(x < y){
- cout<< "Iteration : "<<iterations<<endl;
- cout << "P :"<<p<<endl;
- if(p < 0){
- p = p + 2*x + 3;
- x++;
- }
- else{
- p = p + (2*x) - (2*y) + 5;
- y--;
- x++;
- }
- iterations++;
- transformer(x, y, y_center, x_center);
- }
- }
- int main(){
- midPointCircle(6, 4, 10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement