mandel

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2024 License: MIT Imports: 13 Imported by: 0

README

mandel

Alles was es für das Backen von Mandelbrötchen mit Go so alles braucht.

Documentation

Overview

Dieses Package habe ich erstellt, um mit Go Bildserien der Mandelbrotmenge zu erstellen.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CubicInterpFunc

func CubicInterpFunc(t float64) float64

Die kubische Interpolation, welche weichere Uebergaenge realisiert.

func InterpValue

func InterpValue(v1, v2, t float64, fnc InterpFunc) float64

func LinInterpFunc

func LinInterpFunc(t float64) float64

Die lineare Interpolation

func OpenConfFile

func OpenConfFile(fileName string) (*os.File, error)

OpenConfFile ist eine interne Funktion, mit welcher Konfigurationsdateien im Verzeichnis [confDir] standardisiert angesprochen werden koennen.

func PaletteNames

func PaletteNames() ([]string, error)

Retourniert einen Slice mit den Namen aller verfuegbaren Paletten.

Types

type BaseColorType

type BaseColorType int
const (
	Red BaseColorType = iota
	Green
	Blue
	NumBaseColors
)

func (BaseColorType) String

func (c BaseColorType) String() string

type ColorFunc

type ColorFunc func(t float64) color.RGBA

type ColorList

type ColorList []color.RGBA

ColorList ist ein Hilfstyp (nicht exportiert), mit dem ein Slice von Farben verwaltet werden kann.

func (ColorList) InterpColor

func (cl ColorList) InterpColor(i int, t float64) (col color.RGBA)

getInterpColor ist analog zu getColor, aber hier kann die Interpolations- funktion mit dem Parameter fnc bestimmt werden.

type Field

type Field interface {
	CalcMandelbrot(v View)
	AddPalette(pal Palette)
	AdjPalette()
	Write(fileName string) error
	Read(fileName string) error
	ColorModel() color.Model
	Bounds() image.Rectangle
	At(x, y int) color.Color
}

type GradPoint

type GradPoint struct {
	Pos, Val float64
}

type GradientPalette

type GradientPalette struct {
	// contains filtered or unexported fields
}

func NewGradientPalette

func NewGradientPalette() *GradientPalette

func (*GradientPalette) AddGradPoint

func (p *GradientPalette) AddGradPoint(col BaseColorType, gp *GradPoint) error

func (*GradientPalette) DelGradPoint

func (p *GradientPalette) DelGradPoint(col BaseColorType, gp *GradPoint)

func (*GradientPalette) GetColor

func (p *GradientPalette) GetColor(f float64) color.RGBA

Mit GetColor kann eine Farbe aus der Farbpalette ermittelt werden. f ist eine beliebige Zahl (>= 0.0), welche zusammen mit der hinterlegten, fiktiven Palettenlaenge p.len und dem definierten Offset p.offset verwendet wird, den Index der gesuchten Farbe zu bestimmen. Ist f < 0.0, dann wird als Farbe IMMER Schwarz retourniert.

func (*GradientPalette) GetRegexp

func (p *GradientPalette) GetRegexp() *regexp.Regexp

func (*GradientPalette) GradPoint

func (p *GradientPalette) GradPoint(col BaseColorType, j int) *GradPoint

func (*GradientPalette) GradPointList

func (p *GradientPalette) GradPointList(col BaseColorType) []*GradPoint

func (*GradientPalette) Init

func (p *GradientPalette) Init()

Initialisiert die Felder des Basistyps einer Palette.

func (*GradientPalette) IsLenMaxIter

func (p *GradientPalette) IsLenMaxIter() bool

Holt die Information aus der Palette, ob die Palettenlaenge mit der max. Anzahl Iterationen verbunden sein soll.

func (*GradientPalette) LenIsMaxIter

func (p *GradientPalette) LenIsMaxIter()

Hinterlegt, dass die Laenge der Palette gleich der maximalen Anzahl Iterationen sein soll.

func (*GradientPalette) LenIsNotMaxIter

func (p *GradientPalette) LenIsNotMaxIter()

Hinterlegt, dass die Laenge der Palette nichts mit der maximalen Anzahl Iterationen zu tun haben soll.

func (*GradientPalette) Length

func (p *GradientPalette) Length() int

Retourniert die Laenge der Palette.

func (*GradientPalette) NumGradPoints

func (p *GradientPalette) NumGradPoints(col BaseColorType) int

func (*GradientPalette) Offset

func (p *GradientPalette) Offset() float64

Retourniert den Offset fuer die erste Farbe der Palette.

func (*GradientPalette) ProcessLine

func (p *GradientPalette) ProcessLine(line string) error

func (*GradientPalette) Ready

func (p *GradientPalette) Ready() bool

func (*GradientPalette) SetGradPoint

func (p *GradientPalette) SetGradPoint(col BaseColorType, j int, gp *GradPoint)

func (*GradientPalette) SetLength

func (p *GradientPalette) SetLength(len int)

Setzt die Laenge der Palette auf den Wert len.

func (*GradientPalette) SetOffset

func (p *GradientPalette) SetOffset(offset float64)

Setzt den Offset fuer die erste Farbe der Palette.

func (*GradientPalette) Update

func (p *GradientPalette) Update()

type InterpFunc

type InterpFunc func(t float64) float64

-----------------------------------------------------------------------------

Mit Hilfe dieses Funktionstyps InterpFunc koennen verschiedene Interpolationsfunktionen verwendet werden. Das Argument ist ein Wert in [0, 1], das Resultat ein Wert in [0, 1]. Es muss gelten:

  • InterpFunc(0) = 0
  • InterpFunc(1) = 1
  • (a >= b) => (InterpFunc(a) >= InterpFunc(b))

type Palette

type Palette interface {
	SetLength(len int)
	Length() int
	LenIsMaxIter()
	LenIsNotMaxIter()
	IsLenMaxIter() bool
	SetOffset(offset float64)
	Offset() float64
	GetColor(f float64) color.RGBA

	GetRegexp() *regexp.Regexp
	ProcessLine(line string) error
	Update()
	Ready() bool
}

func NewPalette

func NewPalette(palName string) (Palette, error)

Erstellt eine neue Palette aufgrund des Paletten-Namens in palName.

type Path

type Path interface {
	Read(pathName string) error
	AddView(x, y, w float64, maxIt int)
	NumViews() int
	GetView(t float64) View
}

type ProcPalette

type ProcPalette struct {
	// contains filtered or unexported fields
}

func NewProcPalette

func NewProcPalette() *ProcPalette

func (*ProcPalette) GetColor

func (p *ProcPalette) GetColor(f float64) color.RGBA

Mit GetColor kann eine Farbe aus der Farbpalette ermittelt werden. f ist eine beliebige Zahl (>= 0.0), welche zusammen mit der hinterlegten, fiktiven Palettenlaenge p.len und dem definierten Offset p.offset verwendet wird, den Index der gesuchten Farbe zu bestimmen. Ist f < 0.0, dann wird als Farbe IMMER Schwarz retourniert.

func (*ProcPalette) GetRegexp

func (p *ProcPalette) GetRegexp() *regexp.Regexp

func (*ProcPalette) Init

func (p *ProcPalette) Init()

Initialisiert die Felder des Basistyps einer Palette.

func (*ProcPalette) IsLenMaxIter

func (p *ProcPalette) IsLenMaxIter() bool

Holt die Information aus der Palette, ob die Palettenlaenge mit der max. Anzahl Iterationen verbunden sein soll.

func (*ProcPalette) LenIsMaxIter

func (p *ProcPalette) LenIsMaxIter()

Hinterlegt, dass die Laenge der Palette gleich der maximalen Anzahl Iterationen sein soll.

func (*ProcPalette) LenIsNotMaxIter

func (p *ProcPalette) LenIsNotMaxIter()

Hinterlegt, dass die Laenge der Palette nichts mit der maximalen Anzahl Iterationen zu tun haben soll.

func (*ProcPalette) Length

func (p *ProcPalette) Length() int

Retourniert die Laenge der Palette.

func (*ProcPalette) Offset

func (p *ProcPalette) Offset() float64

Retourniert den Offset fuer die erste Farbe der Palette.

func (*ProcPalette) Param

func (p *ProcPalette) Param(col BaseColorType, par ProcParamType) float64

func (*ProcPalette) ParamList

func (p *ProcPalette) ParamList(col BaseColorType) []float64

func (*ProcPalette) ProcessLine

func (p *ProcPalette) ProcessLine(line string) error

func (*ProcPalette) Ready

func (p *ProcPalette) Ready() bool

func (*ProcPalette) SetLength

func (p *ProcPalette) SetLength(len int)

Setzt die Laenge der Palette auf den Wert len.

func (*ProcPalette) SetOffset

func (p *ProcPalette) SetOffset(offset float64)

Setzt den Offset fuer die erste Farbe der Palette.

func (*ProcPalette) SetParam

func (p *ProcPalette) SetParam(col BaseColorType, par ProcParamType, v float64)

func (*ProcPalette) SetParamList

func (p *ProcPalette) SetParamList(col BaseColorType, v []float64)

func (*ProcPalette) Update

func (p *ProcPalette) Update()

func (*ProcPalette) Value

func (p *ProcPalette) Value(col BaseColorType, f float64) float64

type ProcParamType

type ProcParamType int
const (
	ParA ProcParamType = iota
	ParB
	ParC
	ParD
	NumProcParams
)

type SampleMode

type SampleMode int

Der Typ SampleMode gibt an, von wie vielen Punkten der Mittelwert fuer ein Pixel in der Anzeige berechnet werden soll. Es stehen aktuell die Groessen 1x2, 2x2, 4x4 und 8x8 zur Verfuegung.

const (
	Samp1x1 SampleMode = 1
	Samp2x2 SampleMode = 2
	Samp4x4 SampleMode = 4
	Samp8x8 SampleMode = 8
)

func (*SampleMode) Set

func (sm *SampleMode) Set(s string) error

func (SampleMode) String

func (sm SampleMode) String() string

Mit String wird eine brauchbare textuelle Darstellung der Sample-Groesse erstellt. Wird u.A. bei der Ausgabe der Flags verwendet, mit denen das Programm aufgerufen wird (ist auch Teil des flag.Value Interfaces).

type ValueList

type ValueList []float64

-----------------------------------------------------------------------------

Ein neuer, schlankerer Versuch mit interpolierten Werten aus einem Array von float64-Werten.

func (ValueList) InterpValue

func (vl ValueList) InterpValue(i int, t float64, fnc InterpFunc) float64

Retourniert einen interpolierten Wert, der zwischen vl[i] und vl[i+1] liegt wobei mit t (in [0,1]) der 'Anteil' von vl[i] und vl[i+1] gewaehlt werden kann. fnc schliesslich ist die Interpolationsfunktion (mehr dazu: siehe weiter unten).

type View

type View interface {
	Values() (x, y, w float64, maxIt int)
	SetValues(x, y, w float64, maxIt int)
}

Directories

Path Synopsis
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.
Das Package mandel erlaubt die Berechnung von Ausschnitten der Mandelbrot-Menge.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL