Compare commits

..

2 Commits

Author SHA1 Message Date
ce481c7e30 Text 2019-04-20 15:01:11 +03:00
3300089396 Pandoc setup 2019-04-20 15:00:20 +03:00
9 changed files with 114 additions and 29 deletions

View File

@ -90,15 +90,20 @@ PANDOC_OUTPUTS = {
} }
PANDOC_EXTRA_OPTIONS = [ PANDOC_EXTRA_OPTIONS = [
"--toc", "-V", "documentclass:extarticle",
"-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,10 +4,9 @@ category: Программирование
tags: программирование, cmake tags: программирование, cmake
summary: "" summary: ""
CSS: table-100.css CSS: table-100.css
documentclass: extarticle toc: yes
monofont: Pragmata Pro
monofontoptions: monofontoptions:
- Scale=0.7 - Scale=0.6
... ...
@ -127,7 +126,7 @@ ORG, Inc.
``` ```
В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны
для исключения из создаваемого целью `dist` архива. Например: для исключения из архива, создаваемого целью `dist`. Например:
``` ```
cmake/lib/.git$ cmake/lib/.git$
@ -213,7 +212,7 @@ add_subdirectory(src/libcmex)
В каталоге `cmex/src/libcmex` нужно создать файл `cmex.hpp`: В каталоге `cmex/src/libcmex` нужно создать файл `cmex.hpp`:
```c ```cpp
#ifndef LIBCMEX_CMEX_HPP_ #ifndef LIBCMEX_CMEX_HPP_
#define LIBCMEX_CMEX_HPP_ #define LIBCMEX_CMEX_HPP_
@ -226,7 +225,7 @@ int32_t cmex_init(int32_t i);
файл `cmex.cpp`: файл `cmex.cpp`:
```c ```cpp
#include "cmex.hpp" #include "cmex.hpp"
int32_t cmex_init(int32_t i = 0) { int32_t cmex_init(int32_t i = 0) {
@ -430,12 +429,24 @@ 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) {
std::cout << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp // Значение из compiler_features.hpp
std::cout << BUILD_TYPE << std::endl; // Значение из config.hpp qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl;
std::cout << CMEX_VERSION_STR << std::endl; // Значение из config.hpp // Значение из config.hpp
std::cout << cmex_init(4) << std::endl; // Функция из внутренней библиотеки qStdOut() << QObject::tr("Project version: ") << CMEX_VERSION_STR << endl;
std::cout << 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;
return 0; return 0;
} }
``` ```
@ -482,6 +493,12 @@ 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;
@ -490,11 +507,17 @@ 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;
return 0; return 0;
} }
``` ```
@ -589,6 +612,12 @@ 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;
@ -597,11 +626,17 @@ 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
std::cout << QObject::tr("Project version: ").toStdString() << CMEX_VERSION_STR << std::endl; // Значение из config.hpp // Значение из compiler_features.hpp
std::cout << QObject::tr("Build type: ").toStdString() << BUILD_TYPE << std::endl; // Значение из config.hpp qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << 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("Project version: ") << CMEX_VERSION_STR << 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

@ -0,0 +1,47 @@
---
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,9 +3,6 @@ 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,9 +3,6 @@ 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
... ...

4
wiki/css/table-100.css Normal file
View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 KiB