C# определение принадлежности точек к кольцу.

Компьютеры программирование программы windows C#

Обращаюсь за помощью, необходимо понять.
Есть кусок кода, он должен создавать массив, заполнять случайными числами и определять принадлежат ли точки к кольцу с диаметрами r1 и r2:

int[,] mas = new int[x, 2]; //создание массива;
Random rand = new Random();

for (int i = 0; i < x; i++)
{
mas[i, 0] = rand.Next(0, 479);
mas[i, 1] = rand.Next(0, 479);//Заполнили случайными числами;
graph.FillRectangle(Brushes.Red, mas[i, 0], mas[i, 1], 1, 1); //Нарисовали на графике;
if (((mas[i, 0] - mas[i, 0]) * (mas[i, 1] - mas[i, 1])) + ((mas[i, 1] - mas[i, 1]) * (mas[i, 1] - mas[i, 1])) <= r2 * r2)//Тут я явно накосячил.
if (((mas[i, 0] - mas[i, 0]) * (mas[i, 1] - mas[i, 1])) + ((mas[i, 1] - mas[i, 1]) * (mas[i, 1] - mas[i, 1])) >= r1 * r1)//Тут естественно тоже.
{
listBox1.Items.Add(mas);//добавляем точку в ListBox;
}

Вопрос, как исправить вычесления принадлежности верными, как я понимаю, у меня косяк с радиусом.
И второй - верно ли я добавляю подходящие точки в ListBox.

Спасибо огромное откликнувшимся.
Ответы:
((mas[i, 0] - mas[i, 0]) * (mas[i, 1] - mas[i, 1])) + ((mas[i, 1] - mas[i, 1]) * (mas[i, 1] - mas[i, 1])
Заменим:
x = mas[i, 0]
y = mas[i, 1]
Считаем:
((x - x) * (y - y)) + ((y - y) * (y - y)) = ( 0 * 0 ) + ( 0 * 0 ) = 0


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.