| 
			| 
					
						| 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 | 
								|  | « Ответ #1 : 27-12-2009 19:05 »  |  | 
 
 Fobos, совершенно не понятно, вместо чего и что ты получаешь... |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Fobos 
								Гость
 | 
								|  | « Ответ #2 : 27-12-2009 19:32 »  |  | 
 
 Вместо того ,что на верхнем рисунке выделено жирной линией, получаю выделение красным на другом рисунке =))(т е он не правильно выделят красным ,части окружности) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #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 Кб - загружено 2244 раз.)
									 |  
								| « Последнее редактирование: 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 »   |  | 
 
 . А где то что в тонких линиях? 
 Ну это уж поверх нарисовать - проще простого. Это он сам пусть   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	|  |