Compare commits

..

No commits in common. "ce481c7e3048ce40f7c48655822d244449bdf067" and "a228b612fe1f348053d6a24acf9f2f7886892156" have entirely different histories.

9 changed files with 29 additions and 114 deletions

View File

@ -90,20 +90,15 @@ PANDOC_OUTPUTS = {
} }
PANDOC_EXTRA_OPTIONS = [ PANDOC_EXTRA_OPTIONS = [
"-V", "documentclass:extarticle", "--toc",
"-V", "toc-title:Содержание", "-V", "toc-title:Содержание",
"-F", "skip-toc-tag", "-F", "skip-toc-tag",
"--highlight-style=tango",
"--resource-path=wiki",
"--template=wiki", "--template=wiki",
"--pdf-engine=xelatex" "--pdf-engine=xelatex"
] ]
PANDOC_MARKDOWN_EXTENSIONS = [ PANDOC_MARKDOWN_EXTENSIONS = [
"+smart", "+smart"
"+backtick_code_blocks",
"+fenced_code_blocks",
"+fenced_code_attributes"
] ]
#YUICOMPRESSOR_EXECUTABLE = "yui-compressor" #YUICOMPRESSOR_EXECUTABLE = "yui-compressor"

View File

@ -4,9 +4,10 @@ category: Программирование
tags: программирование, cmake tags: программирование, cmake
summary: "" summary: ""
CSS: table-100.css CSS: table-100.css
toc: yes documentclass: extarticle
monofont: Pragmata Pro
monofontoptions: monofontoptions:
- Scale=0.6 - Scale=0.7
... ...
@ -126,7 +127,7 @@ ORG, Inc.
``` ```
В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны
для исключения из архива, создаваемого целью `dist`. Например: для исключения из создаваемого целью `dist` архива. Например:
``` ```
cmake/lib/.git$ cmake/lib/.git$
@ -212,7 +213,7 @@ add_subdirectory(src/libcmex)
В каталоге `cmex/src/libcmex` нужно создать файл `cmex.hpp`: В каталоге `cmex/src/libcmex` нужно создать файл `cmex.hpp`:
```cpp ```c
#ifndef LIBCMEX_CMEX_HPP_ #ifndef LIBCMEX_CMEX_HPP_
#define LIBCMEX_CMEX_HPP_ #define LIBCMEX_CMEX_HPP_
@ -225,7 +226,7 @@ int32_t cmex_init(int32_t i);
файл `cmex.cpp`: файл `cmex.cpp`:
```cpp ```c
#include "cmex.hpp" #include "cmex.hpp"
int32_t cmex_init(int32_t i = 0) { int32_t cmex_init(int32_t i = 0) {
@ -429,24 +430,12 @@ target_link_libraries(${current_target} ${CMAKE_BINARY_DIR}/lib/libcmext.a)
#include "cmex.hpp" #include "cmex.hpp"
QTextStream& qStdOut()
{
static QTextStream ts(stdout);
return ts;
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
// Значение из compiler_features.hpp std::cout << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp
qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl; std::cout << BUILD_TYPE << std::endl; // Значение из config.hpp
// Значение из config.hpp std::cout << CMEX_VERSION_STR << std::endl; // Значение из config.hpp
qStdOut() << QObject::tr("Project version: ") << CMEX_VERSION_STR << endl; std::cout << cmex_init(4) << std::endl; // Функция из внутренней библиотеки
// Значение из config.hpp std::cout << cmext_init(9) << std::endl; // Функция из внешней библиотеки
qStdOut() << QObject::tr("Build type: ") << BUILD_TYPE << endl;
// Функция из внутренней библиотеки
qStdOut() << QObject::tr("libcmex function call: ") << cmex_init(4) << endl;
// Функция из внешней библиотеки
qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9) << endl;
return 0; return 0;
} }
``` ```
@ -493,12 +482,6 @@ target_link_libraries(${current_target} Qt5::Core)
#include "cmex.hpp" #include "cmex.hpp"
QTextStream& qStdOut()
{
static QTextStream ts(stdout);
return ts;
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
QCoreApplication app(argc, argv); QCoreApplication app(argc, argv);
QTranslator translator; QTranslator translator;
@ -507,17 +490,11 @@ int main(int argc, char **argv) {
{ {
app.installTranslator(&translator); app.installTranslator(&translator);
} }
// Значение из compiler_features.hpp std::cout << QObject::tr("Compiler version: ").toStdString() << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp
qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl; std::cout << QObject::tr("Project version: ").toStdString() << CMEX_VERSION_STR << std::endl; // Значение из config.hpp
// Значение из config.hpp std::cout << QObject::tr("Build type: ").toStdString() << BUILD_TYPE << std::endl; // Значение из config.hpp
qStdOut() << QObject::tr("Project version: ") << CMEX_VERSION_STR << endl; std::cout << QObject::tr("libcmex function call: ").toStdString() << cmex_init(4) << std::endl; // Функция из внутренней библиотеки
// Значение из config.hpp std::cout << QObject::tr("libcmext function call: ").toStdString() << cmext_init(9) << std::endl; // Функция из внешней библиотеки
qStdOut() << QObject::tr("Build type: ") << BUILD_TYPE << endl;
// Функция из внутренней библиотеки
qStdOut() << QObject::tr("libcmex function call: ") << cmex_init(4) << endl;
// Функция из внешней библиотеки
qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9) << endl;
return 0; return 0;
} }
``` ```
@ -612,12 +589,6 @@ MyMainWindow::~MyMainWindow() {
#include "cmex.hpp" #include "cmex.hpp"
#include "my_main_window.hpp" #include "my_main_window.hpp"
QTextStream& qStdOut()
{
static QTextStream ts(stdout);
return ts;
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
QApplication app(argc, argv); QApplication app(argc, argv);
QTranslator translator; QTranslator translator;
@ -626,17 +597,11 @@ int main(int argc, char **argv) {
{ {
app.installTranslator(&translator); app.installTranslator(&translator);
} }
std::cout << QObject::tr("Compiler version: ").toStdString() << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp
// Значение из compiler_features.hpp std::cout << QObject::tr("Project version: ").toStdString() << CMEX_VERSION_STR << std::endl; // Значение из config.hpp
qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl; std::cout << QObject::tr("Build type: ").toStdString() << BUILD_TYPE << std::endl; // Значение из config.hpp
// Значение из config.hpp std::cout << QObject::tr("libcmex function call: ").toStdString() << cmex_init(4) << std::endl; // Функция из внутренней библиотеки
qStdOut() << QObject::tr("Project version: ") << CMEX_VERSION_STR << endl; std::cout << QObject::tr("libcmext function call: ").toStdString() << cmext_init(9) << std::endl; // Функция из внешней библиотеки
// Значение из config.hpp
qStdOut() << QObject::tr("Build type: ") << BUILD_TYPE << endl;
// Функция из внутренней библиотеки
qStdOut() << QObject::tr("libcmex function call: ") << cmex_init(4) << endl;
// Функция из внешней библиотеки
qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9) << endl;
MyMainWindow* mmw = new MyMainWindow(); MyMainWindow* mmw = new MyMainWindow();
mmw->show(); mmw->show();

View File

@ -1,47 +0,0 @@
---
title: "Построение профиля местности в QGis"
category: Картография
tags: картография, qgis, sxf, shp, gdal
summary: ""
...
1) В главном меню QGis **Слой** - **Добавить слой** - **Добавить векторный слой** выбрать и открыть файл с векторным слоем, например, `map.sxf`.
2) Среди слоёв выбрать слой с рельефом местности и типом геометрии `LineString`.
![Слои карты](files/qgis-heights1.png)
3) На панели **Панель слоёв** правой кнопкой мыши щелкнуть на слое,
содержащем данные о высотах, и выбрать **Фильтр...**.
4) Построить выражение выбирающие только данные с высотами, например,
`"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить **OK**.
5) На панели **Панель слоёв** правой кнопкой мыши щелкнуть на слое,
содержащем данные о высотах, и выбрать **Сохранить как...**. Появишийся новый
слой **heights** следует удалить.
6) В появившемся диалоговом окне выбрать имя выходного файла, например, `heights`.
![Имя выходного файла](files/qgis-heights2.png)
7) В каталоге `/home/a/work/map` выполнить команду, которая в файле `heights.shp` из слоя `heights` берёт данные о высотах из
поля `SC_4` и генерирует матрицу высот размером 2000 на 2000 в формате BMP.
Настойки алгоритма посторения матрицы можно изменять с помощью параметра `-a`:
```sh
gdal_grid -a invdist:power=3.0:smoothing=1.0 -outsize 2000 2000 -of BMP -ot Byte -zfield SC_4 -l heights heights.shp heights.bmp
```
8) После построения матрицы её можно импортировать в QGis как растровый слой, для этого в главном меню QGis **Слой** - **Добавить слой** - **Добавить растровый слой** нужно выбрать и открыть файл `heights.bmp`. В результате на
панели **Панель слоёв** появится растровый слой **heights**.
9) С помощью модуля Profile Tool можно построить провиль местности. В главном
меню нужно выбрать **Модуль** - **Profile Tool** - **Terrain profile**.
10) На панели **Панель слоёв** нужно перенести растровый слой **heights**
в конец списка, выделить его и на панели **Profile Tool** нажать **Add Layer**.
После этого на карте можно строить профили местности.
![Матрица высот](files/qgis-heights3.png)

View File

@ -3,6 +3,9 @@ title: "Git: замена адреса подмодуля"
category: Программирование category: Программирование
tags: программирование, git tags: программирование, git
summary: summary:
CSS: table-100.css
documentclass: extarticle
monofont: Pragmata Pro
monofontoptions: monofontoptions:
- Scale=0.7 - Scale=0.7
... ...

View File

@ -3,6 +3,9 @@ title: "Git: распаковка объекта"
category: Программирование category: Программирование
tags: программирование, git tags: программирование, git
summary: summary:
CSS: table-100.css
documentclass: extarticle
monofont: Pragmata Pro
monofontoptions: monofontoptions:
- Scale=0.7 - Scale=0.7
... ...

View File

@ -1,4 +0,0 @@
table {
width: 100%
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 KiB