Вот как программка-тестер отработала в винде XP 32:
Код: Выделить всё
Создаем массив объектов объемом 50
Вызываем randomize...
CX CY Цвет Масштаб Коэфф.
=================================================
792 157 155BB567 8 8
687 205 94220771 6 7
75 302 00C20EAB 4 4
429 332 34C53BDB 2 3
56 288 E5780B62 7 9
247 333 136BC09D 11 4
88 251 9F0DABA4 3 5
119 310 DF15224E 7 5
291 152 CE7068F4 6 3
194 69 E2D8BD95 12 7
476 72 890F9CD4 13 3
8 61 0E29A613 10 3
48 317 D5D0409C 8 7
396 302 314CADA1 3 3
527 30 E4E4B673 3 4
267 232 97F8718A 13 3
581 203 5FF04BDC 3 4
741 401 A1BB6A6B 8 5
262 374 DAB4AFD0 5 5
113 415 435EEB4D 3 5
793 328 F255DE4F 8 9
557 366 641C330C 2 8
611 395 1FAEC252 6 7
17 137 2572994F 4 7
257 176 533D6454 9 7
260 279 C0827310 7 9
792 48 BB396489 6 3
149 29 DC60123B 8 7
456 438 7275612C 6 4
99 351 9B2FC740 3 2
329 210 E192945E 9 7
648 164 AD1856E8 8 5
414 85 31B4DA88 9 4
239 204 CD1D64D9 11 9
795 242 38D26769 4 3
739 145 1858C1F8 10 8
503 382 3F327713 8 4
684 457 7D3C3CA8 5 8
646 200 3BDCF50C 5 3
269 257 2689B5E3 10 4
449 423 19F06C6D 9 8
33 296 82E23A48 6 7
13 216 51163E39 5 3
46 118 31AEFBC0 7 8
634 209 3E083374 2 3
424 103 23ED3F47 8 5
737 380 5E771F5A 6 2
606 256 AC055845 12 4
50 476 ABE940E6 11 6
18 460 F3DDB521 11 4
Вечером прогоню её дома в убунте и посмотрим.........
Добавлено спустя 3 часа 5 минут 53 секунды:Мистика.... так дома, всё работает:
Код: Выделить всё
Создаем массив объектов объемом 50
Вызываем randomize...
CX CY Цвет Масштаб Коэфф.
==========================================================================
572 93 A13737AD 4 4
524 177 A58CAF2D 3 3
347 44 3D1BFA58 2 8
85 147 EB64FF94 10 3
686 15 1BB10939 4 3
524 131 59CCDA50 12 2
768 423 CBA0C37D 8 9
779 265 F400D75C 6 9
29 388 0458C3EB 8 8
731 74 94AEFDEA 6 8
761 145 2AE5369B 7 2
494 302 5CCA70F3 8 6
102 15 C3727265 13 4
552 46 B7719BA6 6 8
776 234 B31DA549 2 9
275 4 7B42A0D0 4 6
334 279 DAEFA990 13 4
649 473 7AE99C0D 3 3
552 42 28D1E22F 11 5
193 110 018575EA 8 5
81 226 6D7D4CDA 11 2
621 111 48468D83 4 5
650 57 89F0517A 7 3
762 343 B9FCA857 13 5
198 300 5608AE33 10 8
20 146 386B03A7 11 4
160 366 8B7C4513 2 3
400 156 56797E2E 7 7
367 381 A98257D5 10 4
497 82 ABD33C78 11 2
350 298 F7BEB55E 4 4
799 450 FD95193A 12 9
243 443 D4A0DE7F 4 6
392 142 1B1923C9 7 6
271 125 30685175 8 2
349 22 135A38A0 10 4
421 459 917EC345 12 3
625 207 6D9BC6A3 3 6
465 12 4DFB6B63 2 6
96 6 283F7DA5 5 2
239 165 12D701DC 13 9
740 462 1304E16F 13 8
579 45 B07E51A5 2 2
75 54 F376DE9C 8 8
680 337 FFAE84BF 11 8
325 59 58BE8074 8 9
146 457 52975BBF 8 7
381 278 934AF304 13 2
728 237 53EA708C 6 6
151 36 7A3E7F6E 4 3
Добавлено спустя 34 минуты 57 секунд:Куда зуб присылать? Рандом не уиноуат(((
все дело в тригонометрических вычислениях в этом методе:
Код: Выделить всё
procedure TCustomPetal.DrawPetal(Canv: TCanvas; Erase: boolean);
begin
phi:=0;
if Erase then RColor:=$00000000;
with Canv do
while phi < K*pi do
begin
R := 10 * sin(PetalI * phi);
X := CX + Trunc(Scale * R * Cos(phi));
y := CY - Trunc(Scale * R * Sin(phi));
Pixels[x, y] := RColor;
phi := phi + pi / 1800;
end;
end;\0
Я так думаю, причина где-то здесь:
Код: Выделить всё
{$ifdef CPUX86_64}
{$ifdef FPC_HAS_TYPE_EXTENDED}
{ win64 doesn't support the legacy fpu }
{$define DEFAULT_EXTENDED}
{$define SUPPORT_EXTENDED}
{$define SUPPORT_COMP}
{$ifndef FPUNONE}
ValReal = Extended;
{$endif}\0
Но как мне упростить вычисления тригонометрические????
Я как-то был уверен, что четырехядерный amd немного пошустрее их производит, нежели старый двухядерный селерон, а выходит наоборот?
Добавлено спустя 1 час 22 минуты 45 секунд:Под виндой на этом компьютере тоже все замечательно