Страница: 1 | 2 |
Вопрос: Один интересный вопросик
Добавлено: 09.10.05 11:50
Автор вопроса: Игорь
Есть форма 80х40. На ней произвольно раставленны N клеток. Как выделить другим цветом форму и подчитать ко-во клеток, которые находятся внутри вписанной окружности, радиусом 40 с центром на середине длинной стороны.
Ответы
Всего ответов: 20
Номер ответа: 1
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #1
Добавлено: 09.10.05 14:46
Не очень поныл, что требуется. Что такое клетка? Как понимать
Вписанной во что?
Длинной стороны чего?
Номер ответа: 2
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #2
Добавлено: 09.10.05 14:54
действительно ничего непонятно.
хотя я вроде понял, что форма 80х40 клеток, но только каких... )
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 09.10.05 17:45
?
Что клетка?
Исходники есть в инете, для определения лежит ли точка внутри окружности. У тебя не одна точка, в 4 (т.к. клетку можно построить по 4 точкам
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #15
Добавлено: 09.10.05 22:25
Ни в коем случае. Это ж на каждый батон hwnd. Windows такое с трудом терпит. Это получается 80*40=320 окон.
Я помню, как грузил все формы моего проекта при запуске. Так когда их стало около двадцати, виндовс уже давал заметную и сильно раздражающую задержку перед созданием или уничтожением к/л окна. Когда менюшка вылезает за секунду - это ужасно.
Особенно сильно это влияет на Win ME.