Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Растеризация   Найти похожие ветки 

 
Dib@zol ©   (2008-01-18 19:11) [0]

Ещё раз здравствуйте.

Сижу готовлюсь к областной по информатике. Видно слишком долго готовлюсь - тупить начал страшно :( Разбираю пример (ответов к сожалению нет):

Пол зала должен быть выложен квадратными плитками одинакового размера. Плитки двух цветов (черного и белого) и выкладываются так, чтобы образовался  треугольник (с вершинами в углах-стыках плиток). Наибольшая трудность состоит в изготовлении плиток, часть которых должна быть чёрного, а часть белого цвета. Вам требуется подсчитать количество таких плиток (иначе говоря, определить, по скольким плиткам пройдут стороны треугольника).

Я так подумал-подумал и ничего лучше, чем каждую плитку представлять в виде уравнений её диагоналей, а затем искать их пересечение со стороной треугольника, не придумал.
Тык вот, внимание вопрос: как можно проще узнать сколько клеток "задевает" сторона треугольника? Ведь можно, знаю же. Только саму идею забыл :((


 
Черный Шаман   (2008-01-18 19:55) [1]


> Dib@zol ©   (18.01.08 19:11)


1. Нарисуй на Bitmap, через сканлайн-ы вытащи пикселы в матрицу. Посчитай. Если использовать graphics32 с AA то совсем просто, посчитать пискелы которые не черные и не белые.

Это если нужно бысро с паруй строчек и стандартными библиотеками, иначе

1. Рисуем три линии(алгоритм рисования линии) в матрице пикселов с учетом АА и далее просто подсчет пикселов которые не 255 и не 0.


 
Lip   (2008-01-18 20:15) [2]


> Черный Шаман  


А че на олимпиадах уже рисовать можно?


 
@!!ex ©   (2008-01-18 20:25) [3]

> [2] Lip   (18.01.08 20:15)

Всю жизнь можно было.


 
DVM ©   (2008-01-18 21:21) [4]


> Dib@zol ©

Когда делается антиалиазинг, то степень прозрачности краевого пиксела (плитки) всегда равна площади трапеции (<1) образованной идеальной линией и сеткой из пикселов (плиток).


 
DVM ©   (2008-01-18 21:21) [5]

и ничего тут рисовать не надо, надо просто въехать в алгоритм антиалиазинга



Страницы: 1 вся ветка

Текущий архив: 2008.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
2-1201335243
Res
2008-01-26 11:14
2008.02.17
Unicode


3-1191432473
PeL!gr!m
2007-10-03 21:27
2008.02.17
Миграция ПО с БД


2-1201155932
Василий К.
2008-01-24 09:25
2008.02.17
Extended в TThread и его деление...


2-1201001386
~F@ntom~
2008-01-22 14:29
2008.02.17
Вставка ассемблеровского кода


15-1200365060
zSergey
2008-01-15 05:44
2008.02.17
Разыскивается компонент