-
1. Data: 2013-06-29 08:52:29
Temat: przyjemna zagadka
Od: firr <p...@g...com>
zagadka mz z gatunku przyjemnych choc dokladnie nie
wiem jeszcze jak nalezaloby to zrobic
potrzebuje funkcji do rasteryzowania kółka
z blendingiem (blending polega
na tym ze wartosc piksela koloru
tla pod kólkiem ma byc proporcjonalnie
zgodnie z alfą dodana do wartosci
koloru kołka - oba kolory to unsigned
32 bit w formacie ARGB)
samo kolko zostalo oparte na midpoincie
void DrawFillCircleBlendUnsafe(int x1, int y1, int radius, unsigned color)
{
int x = 0;
int y = radius;
int d1 = 3 - (2 * radius);
do
{
if (d1 < 0) d1 += (x<<2) + 6;
else d1 += ((x-(y--))<<2) + 10;
drawScanlineBlendUnsafe(y1+x, x1-y, x1+y, color);
drawScanlineBlendUnsafe(y1-x, x1-y, x1+y, color);
drawScanlineBlendUnsafe(y1+y, x1-x, x1+x, color);
drawScanlineBlendUnsafe(y1-y, x1-x, x1+x, color);
x++;
}
while(x<y);
}
1)
pierwszy problem polega na tym ze okazuje sie ze
midpoint tutaj niektore poziome linie (scanlines) rysuje dwa razy (i wychodzą wtedy
dwa razy
pogrubione w kolorze) - jak to poprawic
2) jak dobrze napisac funkcje blend
unsigned blend(unsigned color1, unsigned color2)
{
return ...
}
(tak zeby byla szybka i poprawna,
-
2. Data: 2013-06-29 19:07:06
Temat: Re: przyjemna zagadka
Od: "R.e.m.e.K" <g...@d...null>
Dnia Fri, 28 Jun 2013 23:52:29 -0700 (PDT), firr napisał(a):
> zagadka mz z gatunku przyjemnych choc dokladnie nie
> wiem jeszcze jak nalezaloby to zrobic
Lubie zagadki!
Moja odpowiedz: 8.02
Wygralem??
--
pozdro
R.e.m.e.K
-
3. Data: 2013-06-29 19:24:53
Temat: Re: przyjemna zagadka
Od: A.L. <a...@a...com>
On Sat, 29 Jun 2013 19:07:06 +0200, "R.e.m.e.K" <g...@d...null> wrote:
>Dnia Fri, 28 Jun 2013 23:52:29 -0700 (PDT), firr napisał(a):
>
>> zagadka mz z gatunku przyjemnych choc dokladnie nie
>> wiem jeszcze jak nalezaloby to zrobic
>
>Lubie zagadki!
>Moja odpowiedz: 8.02
>
>Wygralem??
A moja odpowiedz: 66.91
A.L.
-
4. Data: 2013-06-29 21:31:11
Temat: Re: przyjemna zagadka
Od: bartekltg <b...@g...com>
W dniu 2013-06-29 19:07, R.e.m.e.K pisze:
> Dnia Fri, 28 Jun 2013 23:52:29 -0700 (PDT), firr napisał(a):
>
>> zagadka mz z gatunku przyjemnych choc dokladnie nie
>> wiem jeszcze jak nalezaloby to zrobic
>
> Lubie zagadki!
A bardzo proszę.
http://projecteuler.net/problems
Zagadki od trywialnych do nierobialnych, łatwo
poznać która jest która po liczbie osób, które zgadły;)
> Moja odpowiedz: 8.02
Bitwa o Moryrz.
> Wygralem??
Radziwiłł wygrał.
:)
pzdr
bartekltg
-
5. Data: 2013-06-30 09:35:25
Temat: Re: przyjemna zagadka
Od: firr <p...@g...com>
> (tak zeby byla szybka i poprawna,
wogole interesuje sie 'z obowiazku' prymitywami
graficznymi,
blending mamy mozna powiedziec zwykly i brzegowy,
jesli mowa o tym 'brzegowym':
poszukuje algorytmow ktore potrafilyby
zblendowac np kreske, trójkat, prostakat,
albo koło, w scisły sposób -
tj tak jakby kreska byla traktowana
scisle jako prostokat o szerokosci 1
polozony na siatce kafelkow gdzie kazdy
kafelek jest zasłaniany w poprawnie
obliczonym procencie
wydaje mi sie ze algorytmy takie jak wu
robia to chyba w mocno przyblizony sposob
a czy sa optymalizowane algorytmy dokonujace
tego w sposob scisly ? (- to co do kreski
bo co do litych figur to algorytmow brzegowych
wogole jeszcze nie kojarze)
-
6. Data: 2013-06-30 12:27:58
Temat: Re: przyjemna zagadka
Od: Adam Majewski <a...@o...pl>
Może przez wypełnienie konturu ?
int FillContour(double dXseed, double dYseed, unsigned char color,
unsigned char _data[])
{
/*
fills contour with black border using seed point inside contour
and horizontal lines
it starts from seed point, saves max right( iXmaxLocal) and max
left ( iXminLocal) interior points of horizontal line,
in new line ( iY+1 or iY-1) it computes new interior point :
iXmidLocal=iXminLocal + (iXmaxLocal-iXminLocal)/2;
result is stored in _data array : 1D array of 1-bit colors (
shades of gray)
it does not check if index of _data array is good so memory error
is possible
*/
int iXseed = (int)((dXseed - ZxMin)/PixelWidth);
int iYseed = (int)((dYseed - ZyMin)/PixelHeight);
int iX, /* seed integer coordinate */
iY=iYseed,
/* most interior point of line iY */
iXmidLocal=iXseed,
/* min and max of interior points of horizontal line iY */
iXminLocal,
iXmaxLocal;
int i ; /* index of _data array */;
/* --------- move up --------------- */
do{
iX=iXmidLocal;
i =f(iX,iY); /* index of _data array */;
/* move to right */
while (_data[i]==iInterior)
{ _data[i]=color;
iX+=1;
i=f(iX,iY);
}
iXmaxLocal=iX-1;
/* move to left */
iX=iXmidLocal-1;
i=f(iX,iY);
while (_data[i]==iInterior)
{ _data[i]=color;
iX-=1;
i=f(iX,iY);
}
iXminLocal=iX+1;
iY+=1; /* move up */
iXmidLocal=iXminLocal + (iXmaxLocal-iXminLocal)/2; /* new iX inside
contour */
i=f(iXmidLocal,iY); /* index of _data array */;
if ( _data[i]==iJulia) break; /* it should not cross the border */
} while (iY<iYmax);
/* ------ move down ----------------- */
iXmidLocal=iXseed;
iY=iYseed-1;
do{
iX=iXmidLocal;
i =f(iX,iY); /* index of _data array */;
/* move to right */
while (_data[i]==iInterior) /* */
{ _data[i]=color;
iX+=1;
i=f(iX,iY);
}
iXmaxLocal=iX-1;
/* move to left */
iX=iXmidLocal-1;
i=f(iX,iY);
while (_data[i]==iInterior) /* */
{ _data[i]=color;
iX-=1; /* move to right */
i=f(iX,iY);
}
iXminLocal=iX+1;
iY-=1; /* move down */
iXmidLocal=iXminLocal + (iXmaxLocal-iXminLocal)/2; /* new iX inside
contour */
i=f(iXmidLocal,iY); /* index of _data array */;
if ( _data[i]==iJulia) break; /* it should not cross the border */
} while (0<iY);
return 0;
}
HTH
Adam
-
7. Data: 2013-06-30 12:31:17
Temat: Re: przyjemna zagadka
Od: Edek <e...@g...com>
Dnia pamiętnego Sun, 30 Jun 2013 00:35:25 -0700, firr wyjmując peta
oznajmił:
>> (tak zeby byla szybka i poprawna,
>
> wogole interesuje sie 'z obowiazku' prymitywami graficznymi,
>
> blending mamy mozna powiedziec zwykly i brzegowy,
> jesli mowa o tym 'brzegowym':
>
> poszukuje algorytmow ktore potrafilyby zblendowac np kreske, trójkat,
> prostakat,
> albo koło, w scisły sposób -
>
> tj tak jakby kreska byla traktowana scisle jako prostokat o szerokosci 1
> polozony na siatce kafelkow gdzie kazdy kafelek jest zasłaniany w
> poprawnie obliczonym procencie
>
> wydaje mi sie ze algorytmy takie jak wu robia to chyba w mocno
> przyblizony sposob a czy sa optymalizowane algorytmy dokonujace tego w
> sposob scisly ? (- to co do kreski bo co do litych figur to algorytmow
> brzegowych wogole jeszcze nie kojarze)
Ciężko przyznać, że ludzie nie tylko sobie rozmawiają na grupie,
ale jeszcze nie są ostatnimi fakerami, prawda? Chcesz dyskutować
sam ze sobą to sobie bloga załóż, trollu.
--
Edek
-
8. Data: 2013-06-30 13:10:58
Temat: Re: przyjemna zagadka
Od: firr <p...@g...com>
W dniu niedziela, 30 czerwca 2013 12:27:58 UTC+2 użytkownik Adam Majewski napisał:
> Mo�e przez wype�nienie konturu ?
>
>
>
> int FillContour(double dXseed, double dYseed, unsigned char color,
>
raczej nie bardzo, potrzebny jest zwykly szybki
algorytm straightforward - tyle ze taki scisly
algorytm moze byc trudny do napisania
(nie wiem)
-
9. Data: 2013-06-30 23:27:39
Temat: Re: przyjemna zagadka
Od: Edek <e...@g...com>
Dnia pamiętnego Sat, 29 Jun 2013 21:31:11 +0200, bartekltg wyjmując peta
oznajmił:
> W dniu 2013-06-29 19:07, R.e.m.e.K pisze:
>> Lubie zagadki!
>
> A bardzo proszę.
> http://projecteuler.net/problems Zagadki od trywialnych do
> nierobialnych, łatwo poznać która jest która po liczbie osób, które
> zgadły;)
W sam raz na rozmowę kwalifikacyjną. Zna pan algorytmy? Ten potrafiło
napisać już 14 osób! ;)
>> Moja odpowiedz: 8.02
>
> Bitwa o Moryrz.
>
>> Wygralem??
>
> Radziwiłł wygrał.
Jego konie miały dobre AI, to dlatego. Pisane w C::B v. 8.02.
--
Edek
-
10. Data: 2013-07-01 14:44:38
Temat: Re: przyjemna zagadka
Od: bartekltg <b...@g...com>
W dniu 2013-06-30 23:27, Edek pisze:
> Dnia pamiętnego Sat, 29 Jun 2013 21:31:11 +0200, bartekltg wyjmując peta
> oznajmił:
>
>> W dniu 2013-06-29 19:07, R.e.m.e.K pisze:
>>> Lubie zagadki!
>>
>> A bardzo proszę.
>> http://projecteuler.net/problems Zagadki od trywialnych do
>> nierobialnych, łatwo poznać która jest która po liczbie osób, które
>> zgadły;)
>
> W sam raz na rozmowę kwalifikacyjną. Zna pan algorytmy? Ten potrafiło
> napisać już 14 osób! ;)
już 23;)
Niby 20, ale na ile zgadujących?
Zerknąłem na kilka ostatnich zadanek, np 431 i 429 dalem radę,
uznajmy więc, że są łatwe. Zrobiło je 200 i 500 osób. Czyli
pewnie tyle osób się w to regularnie bawi. Zrobiło więc jakieś 4%.
Trudniejsze zadanko na maturze ;-)
>
>>> Moja odpowiedz: 8.02
>>
>> Bitwa o Moryrz.
>>
>>> Wygralem??
>>
>> Radziwiłł wygrał.
>
> Jego konie miały dobre AI,
A jeźdźcy takie samo? ;)
Oby ci z chorągwiami (czy jak tam się sterowało wojskiem
bez radia:) mieli lepszą niż konie:)
> to dlatego. Pisane w C::B v. 8.02.
Code::Blocks?
Przez te kilkaset lat jedynie do 12.coś się dobili?
;-)
pzdr
bartekltg