Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Один интересный вопросик Добавлено: 09.10.05 11:50  

Автор вопроса:  Игорь
Есть форма 80х40. На ней произвольно раставленны N клеток. Как выделить другим цветом форму и подчитать ко-во клеток, которые находятся внутри вписанной окружности, радиусом 40 с центром на середине длинной стороны.

Ответить

  Ответы Всего ответов: 20  

Номер ответа: 1
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #1
Добавлено: 09.10.05 14:46
Не очень поныл, что требуется. Что такое клетка? Как понимать
Как выделить другим цветом форму...
?
...находятся внутри вписанной окружности...

Вписанной во что?
...с центром на середине длинной стороны.

Длинной стороны чего?

Ответить

Номер ответа: 2
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #2
Добавлено: 09.10.05 14:54
действительно ничего непонятно.
хотя я вроде понял, что форма 80х40 клеток, но только каких... :))

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 09.10.05 17:45
Как выделить другим цветом форму
Me.BackColor = RGB(0,0,0)

?

На ней произвольно раставленны N клеток

Что клетка?

и подчитать ко-во клеток, которые находятся внутри вписанной окружности, радиусом 40 с центром на середине длинной стороны.

Исходники есть в инете, для определения лежит ли точка внутри окружности. У тебя не одна точка, в 4 (т.к. клетку можно построить по 4 точкам

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 09.10.05 18:29
Считаешь координаты центра окружности, получаешь для каждого квадрата 4 координаты его вершин, проверяешь, чтобы расстояния от центра окружности до всех четырех были меньше 40, если верно, прибавляешь к счетчику 1.

Ответить

Номер ответа: 5
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #5 Добавлено: 09.10.05 18:47
Попробую написать что я хочу по другому=)
Есть поле как в сапере 80х40 клеток, есть 10 произвольно раставленных клеток выделенных другим цветом. Из середины длинной стороны радиусом 40 проведена вписаная окружность. Как определить кол-во клеток попавших во внутрь этого полукруга

Ответить

Номер ответа: 6
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #6 Добавлено: 09.10.05 18:51
Сорри за второй ник, так получилось оказывается время на форуме отстает на 20 минут зарегистрировался захажу пишит вы забанены, ну и второй раз зарегистрировался

Ответить

Номер ответа: 7
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #7 Добавлено: 09.10.05 19:09
Ты бы про свои клетки написал бы. Это Command-ы что ли.

Ответить

Номер ответа: 8
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #8 Добавлено: 09.10.05 19:12
Да как в сапере простые клетки, на форме у меня их 80х40 и 10 клеток разного цвета(мин)

Sub НарисоватьЧисло(число)
цвет = vbBlack
Form1.ForeColor = цвет
Form1.Print число
End Sub

Sub НарисоватьКлетку(xp, yp, c)
    Xc = xp * РазмерКлетки: Yc = yp * РазмерКлетки + 300
    If Поле(xp, yp) = -1 Then
            Form1.Line (Xc + 10, Yc + 10)-(Xc + РазмерКлетки - 10, Yc + РазмерКлетки - 10), Form1.BackColor, BF
            Form1.PSet (Xc + 45, Yc + 45), Form1.BackColor
            If r > 0 Then НарисоватьЧисло r
            Else
            Form1.Line (Xc + 10, Yc + 10)-(Xc + РазмерКлетки - 10, Yc + РазмерКлетки - 10), c, BF
    End If
End Sub

Sub НарисоватьПоле()
    Form1.Line (РазмерКлетки, РазмерКлетки + 300)-(РазмерКлетки * (ШиринаПоля + 1), РазмерКлетки * (ВысотаПоля + 1) + 300), &H80000000, BF
    For x = 1 To ШиринаПоля
        Form1.Line (РазмерКлетки * x, РазмерКлетки + 300)-(РазмерКлетки * x, РазмерКлетки * (ВысотаПоля + 1) + 300), 0
    Next
    
    For y = 1 To ВысотаПоля
        Form1.Line (РазмерКлетки, y * РазмерКлетки + 300)-(РазмерКлетки * (ШиринаПоля + 1), РазмерКлетки * y + 300), 0
    Next
    For x = 1 To ШиринаПоля
    For y = 1 To ВысотаПоля
    цвет = QBColor(1)
    If Поле(x, y) > 1 Or Поле(x, y) = -1 Then НарисоватьКлетку x, y, цвет
    If Игра = False Then If Поле(x, y) = 1 Then НарисоватьКлетку x, y, RGB(128, 128, 0)
    Next y
    Next x
    For i = 10 To 50
    Form1.Line (РазмерКлетки - i, РазмерКлетки - i + 300)-(РазмерКлетки * (ШиринаПоля + 1) + i, РазмерКлетки * (ВысотаПоля + 1) + i + 300), RGB(100 + i * 12, 100 + i * 12, 100 + i * 12), B
    Next
End Sub

Ответить

Номер ответа: 9
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #9 Добавлено: 09.10.05 19:46
А теперь понятно???=)

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 09.10.05 21:33
клетки батонами сделай

Ответить

Номер ответа: 11
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #11 Добавлено: 09.10.05 21:48
Хорошо а что дальше???

Ответить

Номер ответа: 12
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #12 Добавлено: 09.10.05 21:50
Да совсем забыл сказать, что клетки другого цвета
должны распологаться в произвольном порядке

Ответить

Номер ответа: 13
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #13 Добавлено: 09.10.05 21:54
Как определить кол-во клеток попавших во внутрь этого полукруга

Найди площадь окружности.

Ответить

Номер ответа: 14
Автор ответа:
 IgorS



Вопросов: 0
Ответов: 9
 Профиль | | #14 Добавлено: 09.10.05 21:57
Нашел а дальше то, что можно по конкретнее я новичок желательно кодом=)

Ответить

Номер ответа: 15
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #15
Добавлено: 09.10.05 22:25

клетки батонами сделай

Ни в коем случае. Это ж на каждый батон hwnd. Windows такое с трудом терпит. Это получается 80*40=320 окон.
Я помню, как грузил все формы моего проекта при запуске. Так когда их стало около двадцати, виндовс уже давал заметную и сильно раздражающую задержку перед созданием или уничтожением к/л окна. Когда менюшка вылезает за секунду - это ужасно.
Особенно сильно это влияет на Win ME.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам