Поскольку данная технология поставляетсяв основном 3-мя производителями в копмлектах драйверов.То навиртуалку поставить OpenCL довольно проблематично из-за того, что драйвера не находят подходящиху стройств. Но у АМД есть СДК для разработчиков, который содержит OpenCL: AMD-APP-SDK-v2.8-Windows-32
-
Добро пожаловать
Функция позволяет проверить попадание точки в замкнутую фигуру любой сложности. То есть, работает как для выпуклого так и для вогнутого многоугольника.
static bool PointInPolygon(Point p, Point[] poly)
{
Point p1, p2;
bool inside = false;
if (poly.Length < 3)
{
return inside;
}
Point oldPoint = new Point(
poly[poly.Length - 1].X, poly[poly.Length - 1].Y);
for (int i = 0; i < poly.Length; i++)
{
Point newPoint = new Point(poly[i].X, poly[i].Y);
if (newPoint.X > oldPoint.X)
{
p1 = oldPoint;
p2 = newPoint;
}
else
{
p1 = newPoint;
p2 = oldPoint;
}
if (
(newPoint.X < p.X) == (p.X <= oldPoint.X)
&&
( p.Y - p1.Y)* (p2.X - p1.X)
<
( p2.Y - p1.Y)* (p.X - p1.X)
)
{
inside = !inside;
}
oldPoint = newPoint;
}
return inside;
}
Если ты решил одним видом этих кнопок победить всё вселенское зло, то тебе это почти удалось!
Олег Дмитренко
Когда-то я задал себе вопрос: "Что нужно пользователю программы?". Пошли рассуждения. Программа должна, как минимум делать то, что от неё ожидает пользователь. Логично, но консольную командную строку, почему-то, уже давно никто не использует. Вероятно, помимо юзабилити, ещё нужен некий интерфейс. Легко! Задаём в той же консоли вопросы пользователю, сводя его работу с клавиатурой к минимуму. Так, уже лучше. Программа делает всё, что от неё требовалось, причём делает за минимальные действия пользователя. Но пользователю всё равно не нравится. Почему?
Подписаться на:
Сообщения (Atom)