Старый 12.01.2004, 11:38   #31   
Форумец
 
Сообщений: 1,735
Регистрация: 04.10.2003

maximk вне форума Не в сети
zss_vrn
Вот собственно подумалось:
математика она же не ради самой себя развивалась, так? А вроде как для решения насущных задач.

Только вот задачи в основном такие, что в полном объеме она не нужна. Нужна далеко не в полном. Но то, что ее можно и порой нужно использовать для решения самых разнообразных задач это факт.
  Ответить с цитированием
Старый 12.01.2004, 12:02   #32   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
maximk
Ну да, она - инструмент. Собственно, прежде чем ченть напрограммировать, надо формализовать задачу - по большому счету, описать ее на мат. языке. Щас UML очень полезен.

Интересно, UML - это математика или нет?
  Ответить с цитированием
Старый 12.01.2004, 13:16   #33   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Математикой описывается почти всё стороны нашего существования, о программировании и говорить не приходиться, а говорить можно бесконечно.

Лучше приведите конкретные случаи, из вашей практики, где вам понадобилась математика.
  Ответить с цитированием
Старый 12.01.2004, 13:21   #34   
МИРОВОЕЗЛО
 
Аватар для Sandy
 
Сообщений: 102,093
Регистрация: 13.05.2002

Sandy вне форума Не в сети
написание алгоритмов три де графики
тогда еще openGL не было.
  Ответить с цитированием
Старый 12.01.2004, 20:00   #35   
няшечка
 
Аватар для mikе
 
Сообщений: 5,316
Регистрация: 13.06.2003

mikе вне форума Не в сети
обработка растровой и векторной графики (без 3д)
  Ответить с цитированием
Старый 12.01.2004, 20:44   #36   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
mike_s
обработка растровой

Какие алгоритмы ?
  Ответить с цитированием
Старый 12.01.2004, 20:52   #37   
няшечка
 
Аватар для mikе
 
Сообщений: 5,316
Регистрация: 13.06.2003

mikе вне форума Не в сети
всяко разно. размытие, наложение, повороты, векторизация(это правда так и не закончил), фильтры по цветам и т.д., яркости/контрасты. Короче, чего только не я там не делал. Скучно.
  Ответить с цитированием
Старый 12.01.2004, 22:30   #38   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
mike_s
всяко разно. размытие, наложение, повороты, векторизация(это правда так и не закончил), фильтры по цветам и т.д., яркости/контрасты. Короче, чего только не я там не делал. Скучно.

Манипулировать составляющими цвет байтами это не матиматика. Чтобы размыть картинку даже в школу ходить не надо, достаточно знать что такое среднее арифмитическое Впрочем матрицы заюзать полезно..

векторизация

Это я так понимаю преобразование растровой картинки в набор вершин описывающих векторный рисунок ?
  Ответить с цитированием
Старый 12.01.2004, 23:35   #39   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 40
Записей в дневнике: 7

Grossmeister вне форума Не в сети
LSL Большинство таких эффектов используют довольно сложную математику (интегральные преобразования, матричные операции, квантование и прочее). Все цветовые фильтры используют довльно сложную математику.
Еще недавно столкнулся с теорией вероятности в решении банальной задачи поиска в подстроке.
  Ответить с цитированием
Старый 13.01.2004, 00:32   #40   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Grossmeister
Выложить для примера алгоритмы фотошоповских эффектов на C# ?

Кое где есть математика но она не "довольно сложная".. она простая даже я пойму если пол часика посижу
  Ответить с цитированием
Старый 13.01.2004, 07:28   #41   
Форумец
 
Сообщений: 5,001
Регистрация: 08.04.2003
Возраст: 40

zic вне форума Не в сети
LSL
Некоторые ты за полчаса просто прочитать не успеешь .
Кроме того одно дело понять и совсем другое написать .

Grossmeister
Еще недавно столкнулся с теорией вероятности в решении банальной задачи поиска в подстроке.

Угу . знаем , .5 на .5 либо найдеш либо нет.
  Ответить с цитированием
Старый 13.01.2004, 08:14   #42   
Форумец
 
Сообщений: 1,735
Регистрация: 04.10.2003

maximk вне форума Не в сети
Цитата:
Чтобы размыть картинку даже в школу ходить не надо, достаточно знать что такое среднее арифмитическое
для обывателя это так. Но там действительно достаточно серьезная математика. У нас был курс.

Кстати, среднее арифметическое - это не настоящее размытие. А про матрицы... а как ты думаешь, откуда коэфф. этой матрицы беруться? Оооо! Чтобы строго доказать откуда они, нужно много чего знать...
  Ответить с цитированием
Старый 13.01.2004, 16:37   #43   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
maximk Да ты прав... если глубоко копать, то можно глубоко уйти в землю.

И не вернутся

zic
Некоторые ты за полчаса просто прочитать не успеешь .

Это на C++

Вот код:

Размытие, и гауссовское размытие

Код:
public static bool Smooth(Bitmap b, int nWeight)
{
	ConvMatrix m = new ConvMatrix();
	m.SetAll(1);
	m.Pixel = nWeight;
	m.Factor = nWeight + 8;

	return  BitmapFilter.Conv3x3(b, m);
}


public static bool GaussianBlur(Bitmap b, int nWeight)
{
	ConvMatrix m = new ConvMatrix();
	m.SetAll(1);
	m.Pixel = nWeight;
	m.TopMid = m.MidLeft = m.MidRight = m.BottomMid = 2;
	m.Factor = nWeight + 12;

	return  BitmapFilter.Conv3x3(b, m);
}



public class ConvMatrix
{
	public int TopLeft = 0, TopMid = 0, TopRight = 0;
	public int MidLeft = 0, Pixel = 1, MidRight = 0;
	public int BottomLeft = 0, BottomMid = 0, BottomRight = 0;
	public int Factor = 1;
	public int Offset = 0;

	public void SetAll(int nVal)
	{
		TopLeft = TopMid = TopRight = MidLeft = Pixel = MidRight = BottomLeft = BottomMid = BottomRight = nVal;
	}
}

public static bool Conv3x3(Bitmap b, ConvMatrix m)
{
	if (0 == m.Factor) return false;

	Bitmap bSrc = (Bitmap)b.Clone(); 

	BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
	BitmapData bmSrc = bSrc.LockBits(new Rectangle(0, 0, bSrc.Width, bSrc.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

	int stride = bmData.Stride;
	int stride2 = stride * 2;
	System.IntPtr Scan0 = bmData.Scan0;
	System.IntPtr SrcScan0 = bmSrc.Scan0;

	unsafe
	{
		byte * p = (byte *)(void *)Scan0;
		byte * pSrc = (byte *)(void *)SrcScan0;

		int nOffset = stride - b.Width*3;
		int nWidth = b.Width - 2;
		int nHeight = b.Height - 2;

		int nPixel;

		for(int y=0;y < nHeight;++y)
		{
			for(int x=0; x < nWidth; ++x )
			{
				nPixel = ( ( ( (pSrc[2] * m.TopLeft) + (pSrc[5] * m.TopMid) + (pSrc[8] * m.TopRight) +
							(pSrc[2 + stride] * m.MidLeft) + (pSrc[5 + stride] * m.Pixel) + (pSrc[8 + stride] * m.MidRight) +
							(pSrc[2 + stride2] * m.BottomLeft) + (pSrc[5 + stride2] * m.BottomMid) + (pSrc[8 + stride2] * m.BottomRight)) / m.Factor) + m.Offset); 

				if (nPixel < 0) nPixel = 0;
				if (nPixel > 255) nPixel = 255;

				p[5 + stride]= (byte)nPixel;

				nPixel = ( ( ( (pSrc[1] * m.TopLeft) + (pSrc[4] * m.TopMid) + (pSrc[7] * m.TopRight) +
							(pSrc[1 + stride] * m.MidLeft) + (pSrc[4 + stride] * m.Pixel) + (pSrc[7 + stride] * m.MidRight) +
							(pSrc[1 + stride2] * m.BottomLeft) + (pSrc[4 + stride2] * m.BottomMid) + (pSrc[7 + stride2] * m.BottomRight)) / m.Factor) + m.Offset); 

				if (nPixel < 0) nPixel = 0;
				if (nPixel > 255) nPixel = 255;
							
				p[4 + stride] = (byte)nPixel;

				nPixel = ( ( ( (pSrc[0] * m.TopLeft) + (pSrc[3] * m.TopMid) + (pSrc[6] * m.TopRight) +
							(pSrc[0 + stride] * m.MidLeft) + (pSrc[3 + stride] * m.Pixel) + (pSrc[6 + stride] * m.MidRight) +
							(pSrc[0 + stride2] * m.BottomLeft) + (pSrc[3 + stride2] * m.BottomMid) + (pSrc[6 + stride2] * m.BottomRight)) / m.Factor) + m.Offset); 

				if (nPixel < 0) nPixel = 0;
				if (nPixel > 255) nPixel = 255;

				p[3 + stride] = (byte)nPixel;

				p += 3;
				pSrc += 3;
			}
			p += nOffset;
			pSrc += nOffset;
		}
	}

	b.UnlockBits(bmData);
	bSrc.UnlockBits(bmSrc);

	return true;
}

Элементарно...
  Ответить с цитированием
Старый 13.01.2004, 21:22   #44   
Gross
 
Аватар для Grossmeister
 
Сообщений: 985
Регистрация: 10.05.2002
Возраст: 40
Записей в дневнике: 7

Grossmeister вне форума Не в сети
LSL А ты можешь привести формулы, которые реализует этот алгоритм?
  Ответить с цитированием
Старый 13.01.2004, 22:22   #45   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Grossmeister Я в этих алгоритмах не разбирался, но там кажется, простое перемножение матрицы на первый второй и третий байт цвета пиксела, и так с каждым пикселом...
  Ответить с цитированием
Старый 15.01.2004, 17:43   #46   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
Кроме логики ничего не нужно.
  Ответить с цитированием
Старый 16.01.2004, 09:50   #47   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
Sheriff
Цитата:
Гораздо быстрее и проще пройти подготовку в вузе
Знания, которые преобретаешь сам, в 10 раз ценнее тех знаний, которые тебе дают. Когда сам:
1. Эти знания не забываются.
2. Добывая одно знание, попутно преобретаешь 10 новых.
  Ответить с цитированием
Старый 16.01.2004, 10:22   #48   
Форумец
 
Сообщений: 5,001
Регистрация: 08.04.2003
Возраст: 40

zic вне форума Не в сети
JOHN_PROFF
Согласен . Но ты просто не представляешь себе наверное что такое высшая математика самостоятельно .
Скучно не будет
  Ответить с цитированием
Старый 16.01.2004, 11:00   #49   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
zic Я с 8 класса самостоятельно учусь и стараюсь все сдавать экстерном.
Не беру в расчет графику (не работал), а остальные отрасли помоему знания высшей математики от меня не требуют. Даже если мне надо написать прогу со сложными расчетами, то заказчик даст формулы, по которым все будет считаться.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind