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

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

Перейти к: навигация, поиск

В LibreOffice/OpenOffice можно создавать фигуры с изменяемыми характеристиками. У таких фигур есть жёлтые маркеры, за которые можно тянуть и менять характеристики фигуры. Для того чтобы сделать такую фигуру, нужно редактировать файл content.xml в текстовом редакторе. Можно посмотреть видео (4 мин) с простейшим примером того как можно создавать такие фигуры: YouTube - Изменяемые фигуры.

Изменяемая фигура "Волны"

Итак.

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

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