|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.04.2011, 23:02 | #1 |
Регистрация: 14.05.2010
Сообщений: 9
|
очень интересная графика на си ++
Всем привет)) ребят помогите найти ошибку в коде программы, работает через раз. Буду очень благодарна.
вот текст задания: Разработать приложение, отображающее на экране ход решения следующей задачи: на плоскости заданы множество точек М и круг. Выбрать из М две различные точки так, чтобы наименьшим образом различались количества точек в круге, лежащие по разные стороны от прямой, проходящей через эти точки. а вот код программы: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "math.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- int count=0; int x_inside[500]; int y_inside[500]; int krug(int x1,int x2,int y1,int y2, int count){ int i; int count2=0; int x=0; int y_line; int delta; for(i=0;i<count;i++) { if(x1!=x2&&y1!=y2) y_line=(x2*y1-x1*y2-(y1-y2)*x_inside[i])/(x2-x1); delta=y_inside[i]-y_line; if(delta<0) count2++; } return count2; } void __fastcall TForm1::Button1Click(TObject *Sender) { int qwerty=0; int tem=0; int i=0; int j=0; int x[500]; int y[500]; Form1->Repaint(); int x0=100;//rand()%500; int y0=100;//rand()%500; int R=400;//rand()%250; Form1->Canvas->Ellipse(x0,y0,x0+R,y0+R); for(i=0;i<StrToInt(Form1->Edit2->Text);i++) { x[i]=rand()%500; y[i]=rand()%500; if(pow((x[i]-((R/2)+x0)),2)+pow((y[i]-((R/2)+y0)),2)<pow(R/2,2)) { x_inside[count]=x[i]; y_inside[count]=y[i]; count++; Form1->Canvas->Brush->Color = clBlack; } Form1->Canvas->Ellipse(x[i],y[i],x[i]+4,y[i]+4); Form1->Canvas->Brush->Style=bsClear; } for(i=0;i<StrToInt(Form1->Edit2->Text);i++){ Form1->Canvas->MoveTo(x[i],y[i]); for(j=0;j<StrToInt(Form1->Edit2->Text);j++){ qwerty=krug(x[j],x[i],y[j],y[i],count); tem=count/2; if((qwerty==tem)){ Form1->Canvas->LineTo(x[j],y[j]); Form1->Canvas->MoveTo(x[i],y[i]); goto m1; } } } m1: } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
прога очень интересная | Rabitka | Свободное общение | 5 | 11.07.2009 09:19 |
Не простая, но очень интересная задача (Pascal)! | Juliya_U | Паскаль, Turbo Pascal, PascalABC.NET | 29 | 17.04.2009 19:33 |
Очень интересная задачка, вставка объектов | xamillion | Microsoft Office Excel | 3 | 03.10.2008 20:34 |