cpp

Вспомогательные структуры и интерфейсы

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

Структура Point: координаты точки

Структура Point описывает координаты точки. Положительная ось X направлена вправо, а положительная ось Y — вниз. Определение структуры:

type Point struct {
   X, Y int
}

Пример создания объекта:

p := image.Point{}
fmt.Println(p.X, p.Y)      // 0 0
p = image.Point{10, 20}
fmt.Println(p.X, p.Y)      // 10 20

Создать объект можно также с помощью функции Pt(). Формат функции:

image.Pt(X int, Y int) image.Point

Пример:

p := image.Pt(10, 20)
fmt.Println(p.X, p.Y) // 10 20

Структура Point содержит следующие методы:

  • String() — возвращает строковое представление объекта. Формат метода:
(image.Point).String() string

Пример:

p := image.Point{10, 20}
fmt.Println(p.String()) // (10,20)
  • Eq() — возвращает true, если объекты равны, и false — в противном случае. Формат метода:
(image.Point).Eq(q image.Point) bool

Пример:

p := image.Point{10, 20}
p2 := image.Point{10, 20}
p3 := image.Point{5, 3}
fmt.Println(p.Eq(p2)) // true
fmt.Println(p.Eq(p3)) // false
  • In() — возвращает true, если точка входит в состав прямоугольной области, и false — в противном случае. Формат метода:
(image.Point).In(r image.Rectangle) bool

Пример:

p := image.Point{10, 20}
r := image.Rectangle{image.Point{0, 0}, image.Point{100, 100}}
r2 := image.Rectangle{image.Point{50, 50}, image.Point{100, 100}}
fmt.Println(p.In(r))  // true
fmt.Println(p.In(r2)) // false
  • Mul() — умножает координаты на k. Формат метода:
(image.Point).Mul(k int) image.Point

Пример:

p := image.Point{10, 20}
fmt.Println(p.Mul(2)) // (20,40)
  • Div() — делит координаты на k. Формат метода:
(image.Point).Div(k int) image.Point

Пример:

p := image.Point{10, 20}
fmt.Println(p.Div(2)) // (5,10)
  • Add() — складывает координаты. Формат метода:
(image.Point).Add(q image.Point) image.Point

Пример:

p := image.Point{10, 20}
p2 := image.Point{5, 6}
fmt.Println(p.Add(p2)) // (15,26)
  • Sub() — вычитает координаты. Формат метода:
(image.Point).Sub(q image.Point) image.Point

Пример:

p := image.Point{10, 20}
p2 := image.Point{5, 6}
fmt.Println(p.Sub(p2)) // (5,14)
  • Mod() — формат метода:
(image.Point).Mod(r image.Rectangle) image.Point

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp