Fobos
Гость
|
|
« : 27-12-2009 18:51 » |
|
Помогите , при написании программы использовал след код double dyA=(r1*r1-(x2-x1)*(x2-x1)); double yA=(y1-sqrt(dyA)); double dd=((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1)); double d=(sqrt(dd)); double a=((r1*r1-r3*r3+d*d)/2*d); double h=(sqrt(r1*r1-a*a)); double dx=(x1+a*(x3-x1)/d); double dy=(y1+a*(y3-y1)/d); double xF=(dx+h*(y3-y1)/d); double yF=(dy-h*(x3-x1)/d); MyDC.Arc(x1-r1,y1-r1,x1+r1,y1+r1,xF,yF,x2,yA);//Дуга FA double xE=(dx-h*(y3-y1)/d); double yE=(dy+h*(x3-x1)/d); MyDC.Arc(x3-r3,y3-r3,x3+r3,y3+r3,xE,yE,xF,yF);//Дуга EF double yD=(y1+sqrt(dyA)); MyDC.Arc(x1-r1,y1-r1,x1+r1,y1+r1,x2,yD,xE,yE);//Дуга DE MyDC.Arc(x2-r2,y2-r2,x2+r2,y2+r2,x2,y2-r2,x2,y2+r2);//Дуга BC MyDC.MoveTo(x2,y2+r2); MyDC.LineTo(x2,yD);//Линия DC MyDC.MoveTo(x2,y2-r2); MyDC.LineTo(x2,yA);//Линия BA и всесто такого получаю такое
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #1 : 27-12-2009 19:05 » |
|
Fobos, совершенно не понятно, вместо чего и что ты получаешь...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Fobos
Гость
|
|
« Ответ #2 : 27-12-2009 19:32 » |
|
Вместо того ,что на верхнем рисунке выделено жирной линией, получаю выделение красным на другом рисунке =))(т е он не правильно выделят красным ,части окружности)
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 27-12-2009 21:26 » |
|
Понятно: у меня стоял фильтр на radikal - свалку юзербаров, баннеров и прочего мусора. Лучше атач к форуму было прикрепить.
Пойди по шагам: закомментируй все рисование, кроме одного и посмотри, правильно ли рисуется.
|
|
« Последнее редактирование: 27-12-2009 21:29 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #4 : 28-12-2009 06:23 » |
|
double x1=150; double y1=150; double r1=100;
double x2=200; double y2=50; double r2=50;
double x3=100; double y3=180; double r3=25;
CBrush br(RGB(0,0,0));
CRgn reg1; CRgn reg2; CRgn reg3; CRgn regL;
reg1.CreateEllipticRgn(x1-r1,y1-r1,x1+r1,y1+r1); reg2.CreateEllipticRgn(x2-r2,y2-r2,x2+r2,y2+r2); reg3.CreateEllipticRgn(x3-r3,y3-r3,x3+r3,y3+r3); regL.CreateRectRgn(x1-r1,y1+r1,x3,y1-r1);
reg1.CombineRgn(®1,®2,RGN_DIFF); reg1.CombineRgn(®1,®L,RGN_DIFF); reg1.CombineRgn(®1,®3,RGN_OR);
MyDC.FrameRgn(®1,&br,2,2); MyDC.SetPixel(x1,y1,RGB(0,0,0)); MyDC.SetPixel(x2,y2,RGB(0,0,0)); MyDC.SetPixel(x3,y3,RGB(0,0,0));
|
rgn1.PNG (0.75 Кб - загружено 2149 раз.)
|
« Последнее редактирование: 28-12-2009 06:26 от Алексей1153++ »
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #5 : 28-12-2009 11:12 » |
|
Пушистый, ты маньяк!
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #6 : 28-12-2009 11:16 » |
|
lapulya, правда ?
|
|
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #7 : 28-12-2009 11:26 » |
|
угу, я даже читать код не стал (не говоря уж о запуске), тут нет вопроса по программированию, тут скорее математика и чистописание (чтобы в параметрах не наврать). А ты забурился по самые самые...
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #8 : 28-12-2009 11:30 » |
|
дык, меня как раз обломало математику считать (хотя была мысль) , а регионы есть же (причём, у них аж АПИшные корни)
|
|
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #9 : 28-12-2009 11:58 » |
|
Вот я и говорю - маньяк!
|
|
|
Записан
|
С уважением Lapulya
|
|
|
zubr
Гость
|
|
« Ответ #10 : 28-12-2009 16:06 » |
|
Алексей1153++, дык у тебя вроде не совсем то. А где то что в тонких линиях? Fobos, я в твоем коде нигде не вижу создания и подключения объекта Pen определенного цвета и толщины. Скорее всего в этом трабла.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 28-12-2009 16:12 » |
|
. А где то что в тонких линиях?
Ну это уж поверх нарисовать - проще простого. Это он сам пусть
|
|
|
Записан
|
|
|
|
|