# Fractals/Mathematics/LIC

line Integral Convolution (LIC):

- visualize dense flow fields by imaging its integral curves
- "emulates what happens when an area of fine sand is blown by strong wind" ( Zhanping Liu)
^{[1]}

Method

- vover domain with a input texture
- blur (convolve) the input texture along the path lines using a specified filter kernel
- smear out the texture along stream lines

# Dictionary edit

- the integral curve of the vector field = field line of vector field = streamline of steady ( time independent) flow
- In mathematics, convolution is a special type of binary operation on two functions. Here discrete convolution is used

# elements edit

input:

- texture, usually stationary white noise ( random texture)
- vector field: a stationary vector field defined by a map

kernel:^{[2]}

- one dimensional matrix ( array) of weights
- with an odd kernel size to ensure there is a valid integer (x, y)-coordinate at the center of the image
- normalized. Normalization is defined as the division of each element in the kernel by the sum of all kernel elements, so that the sum of the elements of a normalized kernel is unity. This will ensure the average pixel in the modified image is as bright as the average pixel in the original image.
- often simple box filter
- often symmetric (isotropic) = the convolution kernel is symmetric across its zero point.

Convolution formula ( convolution is not matrix multiplication, when kernel matrix is used )

output image = Final LIC image of input vector field. It is a smeared version of the input texture , where the direction of smearing is determined by the vector field.

## vector field edit

Source

- synthetic data
- experimental data

Method

- array of values
- functions defining vector field

# algorithm edit

**General steps for LIC image:**

- For each pixel of output 2D array compute it's color
- save complete output array as 2D static image file

**Substeps performed for each pixel of LIC image:**

- choose pixel from output array
- go to the Vector array
- choose value at pixel
- find segment of local field line

## dimensions edit

- all images ( textures, domains) have the same dimensions =

## segment of field line edit

- The field lines are calculated on basis of a vector field
- a segment of locations where
- a segment of pixels intensities of length 2L + 1

```
```

## tuple edit

In mathematics, a tuple is a finite ordered list (sequence) of elements.

**Properties**
The general rule for the identity of two *n*-tuples is

Thus a tuple has properties that distinguish it from a set:

- A tuple may contain multiple instances of the same element, so

tuple ; but set . - Tuple elements are ordered: tuple , but set .
- A tuple has a finite number of elements, while a set or a multiset may have an infinite number of elements.

## weighted mean edit

Color of output pixel is computed using weighted mean

The **weighted mean** of a non-empty finite tuple of:

- data ,
- corresponding non-negative weights

is

Therefore, data elements with a high weight contribute more to the weighted mean than do elements with a low weight.

The weights cannot be negative. Some may be zero, but not all of them (since division by zero is not allowed).

# versions edit

line Integral Convolution (LIC)

- Oriented Line Integral Convolution (OLIC)
- Fast Rendering of Oriented Line Integral Convolution ( FROLIC)
^{[3]}^{[4]}

- Fast Rendering of Oriented Line Integral Convolution ( FROLIC)