Точки Принадлежащие Эллипсу

morg4n

New member
05.07.2010
2
0
#1
По заданным размерам экрана дисплея в мм и заданной геометрической погрешности вычисляем минимальный геометрической размер пиксела и определяем пиксельное разрешение экрана дисплея.

Осуществляя последовательное прохождение растра от левого верхнего пиксела растра до конца первой строки, затем переходим на вторую строку и т.д. доходим до конца растра (рисунок2).
В каждом пикселе подставляем его геометрическое значение в алгебраическое уравнение и решая его определяем, принадлежит ли данный пиксел нашему эллипсу, если да, то в массив растра записываем 1, если нет, то пишем 0. Запись массива заканчивается в последней точке.

Условия: размер экрана 160 мм ширина, 180мм высота, погрешность 0.13мм (как я понимаю размер пикселя), центр эллипса 80 мм по х , 50мм по y, a 22mm, b 45mm.
C++:
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
double sqr(double some) {return some*some;}
int main()
{
double x,y;
int width=160,height=180;
int x0=80,y0=50,
a=22,b=45;
double mis=0.13;

freopen("rastr_model.txt","w",stdout);
for(y=height;y>=0;y-mis){
for(x=0;x<=width;x+mis){
if(sqr(x-x0)/sqr(a) + sqr(y-y0)/sqr(b) <1.0+mis
&& sqr(x-x0)/sqr(a) + sqr(y-y0)/sqr(b) >1.0-mis)
cout<<"1";
else
cout<<"0";
}
cout<<"\n";
}
return 0;
}
Но это что-то дикое, помогите, пожалуйста, кто лучше разбирается...