Шаг 766 - CDC::Chord

BOOL Chord( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );
BOOL Chord( LPCRECT lpRect, POINT ptStart, POINT ptEnd );

Возвращаемое значение
Отлично от нуля, если функция успешна, иначе 0.

Параметры
x1
Определяет x-координату левого верхнего угла ограничительного прямоугольника (в логических модулях).
y1
Определяет y-координату левого верхнего угла ограничительного прямоугольника (в логических модулях).
x2
Определяет x-координату нижнего правого угла ограничительного прямоугольника аккорда (в логических модулях).
y2
Определяет y-координату нижнего правого угла ограничительного прямоугольника (в логических модулях).
x3
Определяет x-координату отметки, которая определяет отправную точку (в логических модулях).
y3
Определяет y-координату отметки, которая определяет отправную точку (в логических модулях).
x4
Определяет x-координату отметки, которая определяет оконечную точку (в логических модулях).
y4
Определяет y-координату отметки, которая определяет оконечную точку аккорда (в логических модулях).
lpRect
Определяет ограничительный прямоугольник (в логических модулях). Вы можете передавать или LPRECT или объект CRect для этого параметра.
ptStart
Определяет x- и y-координату отметки, которая определяет отправную точку (в логических модулях). Эта отметка не должна найтись точно на хорде. Вы можете передавать или структуру POINT или объект CPoint для этого параметра.
ptEnd
Определяет x- и y-координату отметки, которая определяет отметку окончания (в логических модулях). Эта отметка не должна найтись точно на хорде. Вы можете передавать или структуру POINT или объект CPoint для этого параметра.

Замечания
Выводит хорду (закрытый рисунок, ограниченный пересечением эллипса и линии сегмента ). (x1, y1) и (x2, y2) параметры определяют левые верхние и нижние правые углы, соответственно, прямоугольника, ограничивающего эллипс, который является частью хорды. (x3, y3) и (x4, y4) параметры определяют оконечные точки линии, которая пересекает эллипс. Хорда выведена, используя выбранное перо и заполнен, используя выбранную кисть.
Рисунок, выведенный функцией Chord простирается до, но не включает право и нижнюю часть координат. Это означает, что высота рисунка - y2 - y1, и ширина рисунка - x2 - x1.

Пример

void CCurvesView::OnDraw(CDC* pDC)
{
	// Заполнить клиентскую область кругом. Круг
	// синий и заполненный синим, но имеет хорду выключенным
	// Этого с 3 часов к 6 часам. Та хорда
	// красная и заполненна  красной диагональной штриховкой.

	//Получить клиентскую область.
	CRect rectClient;
	GetClientRect(rectClient);

	// Делайте пару из перьев и подобных кистей.
	CPen penBlue, penRed;
	CBrush brushBlue, brushRed;
	CBrush* pOldBrush;
	CPen* pOldPen;

	brushBlue.CreateSolidBrush(RGB(0, 0, 255));
	brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
	penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
	penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

	// Вывести с 3 часов к 6 часам, против часовой стрелки,
	// В синем пере с твердым синий заполнением.
	pOldPen = pDC->SelectObject(&penBlue);
	pOldBrush = pDC->SelectObject(&brushBlue);

	pDC->Chord(rectClient,
		CPoint(rectClient.right, rectClient.CenterPoint().y),
		CPoint(rectClient.CenterPoint().x, rectClient.right));

	// Вывести остающуюся четверть, хорду с 6 часов
	// к 3 часам, против часовой стрелки, в красном пере
	// с заштрихованной кистью.
	pDC->SelectObject(&penRed);
	pDC->SelectObject(&brushRed);

	// Хранить те же самые параметры, но обратить начало и
	// конечные точки.
	pDC->Chord(rectClient,
		CPoint(rectClient.CenterPoint().x, rectClient.right),
		CPoint(rectClient.right, rectClient.CenterPoint().y));

	// Восстановить предыдущее перо.
	pDC->SelectObject(pOldPen);
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 3.02.2002