Вопрос: Один интересный вопросик | Добавлено: 09.10.05 11:50 |
Автор вопроса: ![]() |
Есть форма 80х40. На ней произвольно раставленны N клеток. Как выделить другим цветом форму и подчитать ко-во клеток, которые находятся внутри вписанной окружности, радиусом 40 с центром на середине длинной стороны. |
Ответы | Всего ответов: 20 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 345743490 Вопросов: 42 Ответов: 385 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 09.10.05 14:46 |
Не очень поныл, что требуется. Что такое клетка? Как понимать Как выделить другим цветом форму... ?
...находятся внутри вписанной окружности...
Вписанной во что? ...с центром на середине длинной стороны.
Длинной стороны чего? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 09.10.05 14:54 |
действительно ничего непонятно.
хотя я вроде понял, что форма 80х40 клеток, но только каких... ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 09.10.05 17:45 |
Как выделить другим цветом форму Me.BackColor = RGB(0,0,0)
? На ней произвольно раставленны N клеток
Что клетка? и подчитать ко-во клеток, которые находятся внутри вписанной окружности, радиусом 40 с центром на середине длинной стороны.
Исходники есть в инете, для определения лежит ли точка внутри окружности. У тебя не одна точка, в 4 (т.к. клетку можно построить по 4 точкам |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 09.10.05 18:29 |
Считаешь координаты центра окружности, получаешь для каждого квадрата 4 координаты его вершин, проверяешь, чтобы расстояния от центра окружности до всех четырех были меньше 40, если верно, прибавляешь к счетчику 1. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #5 | Добавлено: 09.10.05 18:47 |
Попробую написать что я хочу по другому![]() Есть поле как в сапере 80х40 клеток, есть 10 произвольно раставленных клеток выделенных другим цветом. Из середины длинной стороны радиусом 40 проведена вписаная окружность. Как определить кол-во клеток попавших во внутрь этого полукруга |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #6 | Добавлено: 09.10.05 18:51 |
Сорри за второй ник, так получилось оказывается время на форуме отстает на 20 минут зарегистрировался захажу пишит вы забанены, ну и второй раз зарегистрировался |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #7 | Добавлено: 09.10.05 19:09 |
Ты бы про свои клетки написал бы. Это Command-ы что ли. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #9 | Добавлено: 09.10.05 19:46 |
А теперь понятно???![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #10 | Добавлено: 09.10.05 21:33 |
клетки батонами сделай |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #11 | Добавлено: 09.10.05 21:48 |
Хорошо а что дальше??? |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #12 | Добавлено: 09.10.05 21:50 |
Да совсем забыл сказать, что клетки другого цвета
должны распологаться в произвольном порядке |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 46 Ответов: 848 |
Профиль | Цитата | #13 | Добавлено: 09.10.05 21:54 |
Как определить кол-во клеток попавших во внутрь этого полукруга
Найди площадь окружности. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 9 |
Профиль | Цитата | #14 | Добавлено: 09.10.05 21:57 |
Нашел а дальше то, что можно по конкретнее я новичок желательно кодом![]() |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 345743490 Вопросов: 42 Ответов: 385 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 09.10.05 22:25 |
клетки батонами сделай
Ни в коем случае. Это ж на каждый батон hwnd. Windows такое с трудом терпит. Это получается 80*40=320 окон. Я помню, как грузил все формы моего проекта при запуске. Так когда их стало около двадцати, виндовс уже давал заметную и сильно раздражающую задержку перед созданием или уничтожением к/л окна. Когда менюшка вылезает за секунду - это ужасно. Особенно сильно это влияет на Win ME. |
|