Spravovat ink objekty prezentace v C++
Úvod
PowerPoint nabízí funkci ink, která vám umožňuje kreslit nestandardní tvary, jež lze použít k zvýraznění dalších objektů, zobrazení spojení a procesů a upoutání pozornosti na konkrétní položky na snímku.
Aspose.Slides poskytuje rozhraní Aspose.Slides.Ink , které obsahuje typy potřebné k vytvoření a správě ink objektů.
Rozdíly mezi běžnými objekty a ink objekty
Objekty na snímku PowerPointu jsou typicky reprezentovány objekty tvaru. Objekt tvaru, v jeho nejjednodušší podobě, je kontejner, který definuje oblast samotného objektu (jeho rám) spolu s jeho vlastnostmi. Ty zahrnují velikost oblasti kontejneru, tvar kontejneru, pozadí kontejneru atd. Další informace najdete v Shape Layout Format.
Nicméně, když PowerPoint pracuje s ink objektem, ignoruje všechny vlastnosti rámu objektu (kontejneru) kromě jeho velikosti. Velikost oblasti kontejneru je určena standardními hodnotami width a height:

Inkshape stopy
Stopa je základní prvek nebo standard používaný k zaznamenání trajektorie pera, když uživatel píše digitální ink. Stopy jsou záznamy, které popisují sekvence spojených bodů.
Nejjednodušší forma kódování určuje souřadnice X a Y každého vzorkového bodu. Když jsou všechny spojené body vykresleny, vytvoří obrázek jako tento:

Vlastnosti štětce pro kreslení
Můžete použít štětec k nakreslení čar spojujících body prvků stopy. Štětec má svou vlastní barvu a velikost, odpovídající vlastnostem Brush.Color a Brush.Size.
Nastavení barvy ink štětce
Tento C++ kód ukazuje, jak nastavit barvu pro štětec:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<IInk> ink = System::ExplicitCast<IInk>(pres->get_Slide(0)->get_Shape(0));
System::ArrayPtr<System::SharedPtr<IInkTrace>> traces = ink->get_Traces();
System::SharedPtr<IInkBrush> brush = traces[0]->get_Brush();
System::Drawing::Color brushColor = brush->get_Color();
brush->set_Color(System::Drawing::Color::get_Red());
Nastavení velikosti ink štětce
Tento C++ kód ukazuje, jak nastavit velikost pro štětec:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<IInk> ink = System::ExplicitCast<IInk>(pres->get_Slide(0)->get_Shape(0));
System::ArrayPtr<System::SharedPtr<IInkTrace>> traces = ink->get_Traces();
System::SharedPtr<IInkBrush> brush = traces[0]->get_Brush();
System::Drawing::SizeF brushSize = brush->get_Size();
brush->set_Size(System::Drawing::SizeF(5.0f, 10.0f));
Obecně se šířka a výška štětce neshodují, takže PowerPoint nezobrazuje velikost štětce (datová sekce je šedá). Ale když se šířka a výška štětce shodují, PowerPoint zobrazí jeho velikost takto:

Pro přehlednost zvýšíme výšku ink objektu a podíváme se na důležité rozměry:

Kontejner (rám) nezohledňuje velikost štětců – vždy předpokládá, že tloušťka čáry je nula (viz poslední obrázek).
Proto musíme při určování viditelné oblasti celého ink objektu vzít v úvahu velikost štětce stopových objektů. Zde byl cílový objekt (stopa ručně psaného textu) přizpůsoben velikosti kontejneru (rámu). Když se změní velikost kontejneru (rámu), velikost štětce zůstává konstantní a naopak.

PowerPoint vykazuje stejné chování při práci s texty:

Další čtení
- Pro obecné informace o tvarech si přečtěte sekci PowerPoint Shapes.
- Pro více informací o efektivních hodnotách navštivte Shape Effective Properties.