Функция разложения цвета на оттенки. - страница 8

 
Nikolai Semko:
Я убрал стринги из твоего алгоритма. Для меня была загадка зачем ты их использовал. Загляни в код, как бы я тогда выводил реальный цвет.  У тебя куча ненужных проверок, ты используешь такие функции как тангенс, сортировка массива, я же только +-*/. Мт4 медленнее, это понятно, но не в 30 раз. 
Хорошо, чуть позже засуну свой алгоритм на 4 и посмотрю. Зачем ты вообще юзаешь 4-ку? Для графического интерфейса 4 совсем не годиться. У нее даже ресурсы не читаются. С 4 на 5 код переделывать гораздо сложнее, чем наоборот.

МТ4 может быть медленнее и в 60 раз. Проверь скорость заполнения массивов int на обоих платформах и увидишь.

 
Nikolai Semko:
Я убрал стринги из твоего алгоритма. Для меня была загадка зачем ты их использовал. Загляни в код, как бы я тогда выводил реальный цвет.  У тебя куча ненужных проверок, ты используешь такие функции как тангенс, сортировка массива, я же только +-*/. Мт4 медленнее, это понятно, но не в 30 раз. 
Хорошо, чуть позже засуну свой алгоритм на 4 и посмотрю. Зачем ты вообще юзаешь 4-ку? Для графического интерфейса 4 совсем не годиться. У нее даже ресурсы не читаются. С 4 на 5 код переделывать гораздо сложнее, чем наоборот.

Для графического интерфейса 4-ка очень даже годится. Но разговор о другом. Не будем отвлекаться.

 
Nikolai Semko:
Я убрал стринги из твоего алгоритма. Для меня была загадка зачем ты их использовал. Загляни в код, как бы я тогда выводил реальный цвет.  У тебя куча ненужных проверок, ты используешь такие функции как тангенс, сортировка массива, я же только +-*/. Мт4 медленнее, 

Понятно, что стринги можно не использовать. Я посчитал, что так будет удобнее для пользователя. Смысл экономить на микросекундах, если функция вызывается один раз?

 
Nikolai Semko:
  У тебя куча ненужных проверок, ты используешь такие функции как тангенс, сортировка массива, я же только +-*/. 

Николай, прежде чем утверждать, что у меня что то неправильно, давай убедимся, что твой алгоритм действительно и быстрее и лучше. Я переставлю свой алгоримт на МТ5 и проверю скорость. А ты выведи распечатку своего массива и сравни с цветами Виндоус. (В этом случае, тебе все таки придется воспользоваться именно типом string. Это одна из причин, почему я им воспользовался. Он был нужен также для сравнения.) 

 
Реter Konow:

Николай, прежде чем утверждать, что у меня что то неправильно, давай убедимся, что твой алгоритм действительно и быстрее и лучше. Я переставлю свой алгоримт на МТ5 и проверю скорость. А ты выведи распечатку своего массива и сравни с цветами Виндоус. (В этом случае, тебе все таки придется воспользоваться именно типом string. Это одна из причин, почему я им воспользовался. Он был нужен также для сравнения.) 

Мой алгоритм на 4-ке имеет выйгрыш более, чем в  4 раза, чем твой.

Вот якрий пример, почему 4-ку исплользовать неразумно.

Во- первых даже простые алгоритмы с +/-* работают в 5-7 раз медленее.

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

Вопрос в том, что юзая 4-ку ты обкрадываешь свое время. Рано или поздно тебе придется переделывать код с 4 на 5. А вот если бы полностью перешел на 5, то возможно через пару-тройку лет обратную процедуру делать уже не пришлось, т.к. 4-ка уже не будет так востребована как сейчас, а если даже будет востребована, то силы, потраченные на переделывания кода с 5 на 4 несоразмерны, чем обратно.

Файлы:
 
Реter Konow:

Николай, прежде чем утверждать, что у меня что то неправильно, давай убедимся, что твой алгоритм действительно и быстрее и лучше. Я переставлю свой алгоримт на МТ5 и проверю скорость. А ты выведи распечатку своего массива и сравни с цветами Виндоус. (В этом случае, тебе все таки придется воспользоваться именно типом string. Это одна из причин, почему я им воспользовался. Он был нужен также для сравнения.) 

И кстати с моей функцией работает без таких сбоев:

Значит в твоем алгоритме косяк. Разбирайся сам.

 
Nikolai Semko:

Мой алгоритм на 4-ке имеет выйгрыш более, чем в  4 раза, чем твой.

Вот якрий пример, почему 4-ку исплользовать неразумно.

Во- первых даже простые алгоритмы с +/-* работают в 5-7 раз медленее.

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

Вопрос в том, что юзая 4-ку ты обкрадываешь свое время. Рано или поздно тебе придется переделывать код с 4 на 5. А вот если бы полностью перешел на 5, то возможно через пару-тройку лет обратную процедуру делать уже не пришлось, т.к. 4-ка уже не будет так востребована как сейчас, а если даже будет востребована, то силы, потраченные на переделывания кода с 5 на 4 несоразмерны, чем обратно.

Николай, давай не будем отвлекаться на посторонние темы. Разговор о корректности работы алгоритмов и сравнении их скорости. 

  1. Покажи, что твой алгоритм работает корректно, распечатав цвета из массива и сравнив их с цветами в палитре виндоус.
  2. Я пока перевожу свой алгоритм на МТ5 и сообщу о результатах.

 
Реter Konow:

Николай, прежде чем утверждать, что у меня что то неправильно, давай убедимся, что твой алгоритм действительно и быстрее и лучше. Я переставлю свой алгоримт на МТ5 и проверю скорость. А ты выведи распечатку своего массива и сравни с цветами Виндоус. (В этом случае, тебе все таки придется воспользоваться именно типом string. Это одна из причин, почему я им воспользовался. Он был нужен также для сравнения.) 

Для вывода типа стринг не надо его засовывать в тело самой функции, а достаточно переводить значения в этот тип в момент печати.

for (int l=0;l<256;l++) {Col.clr=Gradient[l]; Print("RGB = " + string(Col.c[2])+", "+string(Col.c[1])+", "+string(Col.c[0]));}
 
Nikolai Semko:

Для вывода типа стринг не надо его засовывать в тело самой функции, а достаточно переводить значения в этот тип в момент печати.

Ты опять отвлекаешься на другие темы. Вопрос не в том, как выводить тип стринг. Это личный стиль каждого.

Ты изменил мой код и добавил много своего кода. Это значительно изменило результат. Я перевожу все на МТ5 и пытаюсь понять, что ты тут написал. 

Суть в том, что при сравнении с цветовой палитрой у меня все четко. А при выводе на экран с твоим алгоритмом - проблема. Пытаюсь понять где загвоздка.

 
Реter Konow:

Ты опять отвлекаешься на другие темы. Вопрос не в том, как выводить тип стринг. Это личный стиль каждого.

Ты изменил мой код и добавил много своего кода. Это значительно изменило результат. Я перевожу все на МТ5 и пытаюсь понять, что ты тут написал. 

Суть в том, что при сравнении с цветовой палитрой у меня все четко. А при выводе на экран с твоим алгоритмом - проблема. Пытаюсь понять где загвоздка.

Петр, вопрос в том, что ты на форуме выложил функцию для всеобщего обозрения и применения разложение цвета. Но эта фукция не формирует нужный массив color, а лишь массив string, который годиться только для вывода Print, вместо того чтобы свой градиент продемонстрировать на экране. Это кот в мешке и не уважение к окружающим. Мол переводите сами, если кому нужно.