Изменяемые фигуры

Материал из Forumooo wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «{{DISPLAYTITLE: Изменяемые фигуры}} В {{Office}} можно создавать фигуры с изменяемыми характеристикам...»)
м
Строка 3: Строка 3:
[[Image:Итог.png‎|thumb|100px|Изменяемая фигура "Волны"]]
[[Image:Итог.png‎|thumb|100px|Изменяемая фигура "Волны"]]
Итак.
Итак.
-
#Создайте пустой документ Draw, нарисуйте в нём любую готовую фигуру с желтым маркером (например, квадрат со скругленными углами), сохраните его;
+
* 1. создайте пустой документ Draw, нарисуйте в нём любую готовую фигуру с желтым маркером (например, квадрат со скругленными углами), сохраните его;
-
#переименуйте расширение файла '''odg''' в '''zip''' и распакуйте файл;
+
* 2. переименуйте расширение файла '''odg''' в '''zip''' и распакуйте файл;
-
#оттуда в текстовом редакторе откройте файл '''content.xml''' и найдите в нём секцию <code>draw:custom-shape;</code>
+
* 3. оттуда в текстовом редакторе откройте файл '''content.xml''' и найдите в нём секцию <code>draw:custom-shape</code>;
-
#теперь нам нужно нарисовать свою фигуру (заготовку) и экспортировать её в '''svg''' – для этого откройте другой пустой документ '''Draw''', и нарисуйте там фигуру. Например, рассмотрим фигуру "Волны".[[Image:CustomShapes-заготовка_для_волны.png‎|thumb|100px|Заготовка для волн в Draw]]
+
* 4. теперь нам нужно нарисовать свою фигуру (заготовку) и экспортировать её в '''svg''' – для этого откройте другой пустой документ '''Draw''', и нарисуйте там фигуру. Например, рассмотрим фигуру "Волны".[[Image:CustomShapes-заготовка_для_волны.png‎|thumb|100px|Заготовка для волн в Draw]]
{{Note|Желательно чтобы размеры страницы были равны размеру фигуры, иначе не все координаты будут использоваться}}
{{Note|Желательно чтобы размеры страницы были равны размеру фигуры, иначе не все координаты будут использоваться}}
-
#из файла '''svg''' нам нужна секция '''path''' и '''rect''' – откройте '''svg''' в текстовом редакторе и замените все запятые на пробелы; скопируйте строку '''path''' и вставьте её в файл '''content.xml''' из пункта 3, после <code>draw:enhanced-path="</code>, а значения секции '''rect''' вставьте в <code>svg:viewBox=""</code> между кавычками.
+
* 5. из файла '''svg''' нам нужна секция '''path''' и '''rect''' – откройте '''svg''' в текстовом редакторе и замените все запятые на пробелы; скопируйте строку '''path''' и вставьте её в файл '''content.xml''' из пункта 3, после <code>draw:enhanced-path="</code>, а значения секции '''rect''' вставьте в <code>svg:viewBox=""</code> между кавычками.
{{Tip|координаты отсчитываются от верхнего левого угла}}
{{Tip|координаты отсчитываются от верхнего левого угла}}
-
том как работать с формулами более подробно [http://books.evc-cit.info/odbook/custom_shapes_article.pdf описано в '''pdf''' файле] ([http://books.evc-cit.info/odbook/custom_shapes_article.zip а примеры есть в файле '''zip''']). Вы также можете анализируя готовую фигуру из пункта 1, отредактировать формулу.
+
* 6. о том как работать с формулами более подробно [http://books.evc-cit.info/odbook/custom_shapes_article.pdf описано в '''pdf''' файле] ([http://books.evc-cit.info/odbook/custom_shapes_article.zip а примеры есть в файле '''zip''']). Вы также можете анализируя готовую фигуру из пункта 1, отредактировать формулу.
В примере с волной, путь из файла '''svg''' выглядит так:
В примере с волной, путь из файла '''svg''' выглядит так:
Строка 129: Строка 129:
</draw:enhanced-geometry>
</draw:enhanced-geometry>
</draw:custom-shape></source>
</draw:custom-shape></source>
-
#Теперь нам нужно сохранить content.xml, запаковать файлы обратно в zip, и переименовать обратно в odg.
+
* 7. теперь нам нужно сохранить '''content.xml''', запаковать файлы обратно в '''zip''', и переименовать обратно в '''odg'''.
Пример итогового файла с волнами: [[File:CustomShape-Waves.odg]]
Пример итогового файла с волнами: [[File:CustomShape-Waves.odg]]

Версия 15:15, 1 апреля 2011

В LibreOffice/OpenOffice можно создавать фигуры с изменяемыми характеристиками. У таких фигур есть желтые маркеры, за которые можно тянуть и менять характеристики фигуры. Для того чтобы сделать такую фигуру, нужно редактировать файл content.xml в текстовом редакторе.

Ошибка создания миниатюры: convert: unable to open image `/home/web/wiki.forumooo.ru/www/images/f/fa/Итог.png': No such file or directory @ error/blob.c/OpenBlob/2641.
convert: no images defined `/home/web/wiki.forumooo.ru/www/images/thumb/f/fa/Итог.png/100px-Итог.png' @ error/convert.c/ConvertImageCommand/3049.
Изменяемая фигура "Волны"

Итак.

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

В примере с волной, путь из файла svg выглядит так:


M 286 1029 C 560 755 869 0 1257 0 1646 0 1840 1029 2229 1029 2617 1029 2811 0 3200 0 3589 0 3783 1029 4171 1029 4560 1029 4754 0 5143 0 5531 0 5726 1029 6114 1029 6503 1029 6697 0 7086 0 7474 0 7669 1029 8057 1029 8446 1029 8640 0 9029 0 9417 0 9611 1029 10000 1029 10389 1029 10583 0 10971 0 11360 0 11554 1029 11943 1029 12331 1029 12526 0 12914 0 13303 0 13497 1029 13886 1029 14274 1029 14469 0 14857 0 15246 0 15440 1029 15829 1029 16217 1029 16411 0 16800 0 17189 0 17383 1029 17771 1029 18160 1029 18354 0 18743 0 19131 0 19440 755 19714 1029 19989 1303 20000 2382 20000 3030 L 0 3030 C 0 2382 11 1303 286 1029


После редактирования вся фигура в текстовом редакторе выглядит так:

<draw:custom-shape
	draw:style-name="gr2" draw:text-style-name="P1"
	draw:layer="layout"
	svg:width="20cm" svg:height="5cm"
	svg:x="0cm" svg:y="0cm">
	<text:p/>
	<draw:enhanced-geometry
		svg:viewBox="0 0 20000 5000"
		draw:modifiers="388 1029 0 5000"
		draw:enhanced-path="M 0 ?ht C ?sh01 ?ht ?sh11 0 1257 0 ?sh12 0 ?sh21 ?ht 2229 ?ht ?sh22 ?ht ?sh31 0 3200 0 ?sh32 0 ?sh41 ?ht 4171 ?ht ?sh42 ?ht ?sh51 0 5143 0 ?sh52 0 ?sh61 ?ht 6114 ?ht ?sh62 ?ht ?sh71 0 7086 0 ?sh72 0 ?sh81 ?ht 8057 ?ht ?sh82 ?ht ?sh91 0 9029 0 ?sh92 0 ?sh101 ?ht 10000 ?ht ?sh102 ?ht ?sh111 0 10971 0 ?sh112 0 ?sh121 ?ht 11943 ?ht ?sh122 ?ht ?sh131 0 12914 0 ?sh132 0 ?sh141 ?ht 13886 ?ht ?sh142 ?ht ?sh151 0 14857 0 ?sh152 0 ?sh161 ?ht 15829 ?ht ?sh162 ?ht ?sh171 0 16800 0 ?sh172 0 ?sh181 ?ht 17771 ?ht ?sh182 ?ht ?sh191 0 18743 0 ?sh192 0 ?sh201 ?ht 20000 ?ht L 20000 ?dh 0 ?dh 0 ?ht">
		<!-- calculations -->
		<draw:equation draw:name="sh01"
			draw:formula="?wd+286+$0"/>
		<draw:equation draw:name="sh11"
			draw:formula="?wd+1257-$0"/>
		<draw:equation draw:name="sh12"
			draw:formula="?wd+1257+$0"/>
		<draw:equation draw:name="sh21"
			draw:formula="?wd+2229-$0"/>
		<draw:equation draw:name="sh22"
			draw:formula="?wd+2229+$0"/>
		<draw:equation draw:name="sh31"
			draw:formula="?wd+3200-$0"/>
		<draw:equation draw:name="sh32"
			draw:formula="?wd+3200+$0"/>
		<draw:equation draw:name="sh41"
			draw:formula="?wd+4171-$0"/>
		<draw:equation draw:name="sh42"
			draw:formula="?wd+4171+$0"/>
		<draw:equation draw:name="sh51"
			draw:formula="?wd+5143-$0"/>
		<draw:equation draw:name="sh52"
			draw:formula="?wd+5143+$0"/>
		<draw:equation draw:name="sh61"
			draw:formula="?wd+6114-$0"/>
		<draw:equation draw:name="sh62"
			draw:formula="?wd+6114+$0"/>
		<draw:equation draw:name="sh71"
			draw:formula="?wd+7086-$0"/>
		<draw:equation draw:name="sh72"
			draw:formula="?wd+7086+$0"/>
		<draw:equation draw:name="sh81"
			draw:formula="?wd+8057-$0"/>
		<draw:equation draw:name="sh82"
			draw:formula="?wd+8057+$0"/>
		<draw:equation draw:name="sh91"
			draw:formula="?wd+9029-$0"/>
		<draw:equation draw:name="sh92"
			draw:formula="?wd+9029+$0"/>
		<draw:equation draw:name="sh101"
			draw:formula="?wd+10000-$0"/>
		<draw:equation draw:name="sh102"
			draw:formula="?wd+10000+$0"/>
		<draw:equation draw:name="sh111"
			draw:formula="?wd+10971-$0"/>
		<draw:equation draw:name="sh112"
			draw:formula="?wd+10971+$0"/>
		<draw:equation draw:name="sh121"
			draw:formula="?wd+11943-$0"/>
		<draw:equation draw:name="sh122"
			draw:formula="?wd+11943+$0"/>
		<draw:equation draw:name="sh131"
			draw:formula="?wd+12914-$0"/>
		<draw:equation draw:name="sh132"
			draw:formula="?wd+12914+$0"/>
		<draw:equation draw:name="sh141"
			draw:formula="?wd+13886-$0"/>
		<draw:equation draw:name="sh142"
			draw:formula="?wd+13886+$0"/>
		<draw:equation draw:name="sh151"
			draw:formula="?wd+14857-$0"/>
		<draw:equation draw:name="sh152"
			draw:formula="?wd+14857+$0"/>
		<draw:equation draw:name="sh161"
			draw:formula="?wd+15829-$0"/>
		<draw:equation draw:name="sh162"
			draw:formula="?wd+15829+$0"/>
		<draw:equation draw:name="sh171"
			draw:formula="?wd+16800-$0"/>
		<draw:equation draw:name="sh172"
			draw:formula="?wd+16800+$0"/>
		<draw:equation draw:name="sh181"
			draw:formula="?wd+17771-$0"/>
		<draw:equation draw:name="sh182"
			draw:formula="?wd+17771+$0"/>
		<draw:equation draw:name="sh191"
			draw:formula="?wd+18743-$0"/>
		<draw:equation draw:name="sh192"
			draw:formula="?wd+18743+$0"/>
		<draw:equation draw:name="sh201"
			draw:formula="?wd+19714-$0"/>
		<draw:equation draw:name="ht"
			draw:formula="$1"/>
		<draw:equation draw:name="wd"
			draw:formula="$2"/>
		<draw:equation draw:name="dh"
			draw:formula="$3"/>
		<!-- handle for smooth,height -->
		<draw:handle draw:handle-position="$0 $1"
			draw:handle-range-x-minimum="0"
			draw:handle-range-x-maximum="2000"
			draw:handle-range-y-minimum="0"
			draw:handle-range-y-maximum="5000"/>
		<!-- handle for depth -->
		<draw:handle draw:handle-position="$2 $3"
			draw:handle-range-x-minimum="0"
			draw:handle-range-x-maximum="3000"
			draw:handle-range-y-minimum="0"
			draw:handle-range-y-maximum="5000"/>
	</draw:enhanced-geometry>
</draw:custom-shape>

Пример итогового файла с волнами: Файл:CustomShape-Waves.odg

Личные инструменты
Пространства имён
Варианты
Действия
Компоненты
Общие вопросы
Совместимость
Навигация
Инструменты