portál uživatelů
softwarů Autodesk

Tvary a písma tvarů, 4. díl – Tvorba definičních souborů tvarů

Kód 00B: zlomkový oblouk Speciální kód 00B (11) je určen pro kreslení oblouků, jejichž koncové body nutně neleží na hranicích oktantů. Popis oblouku vyžaduje pět dalších specifikačních bajtů. 11,poč_…

Tvary a písma tvarů, 4. díl – Tvorba definičních souborů tvarů

Kód 00B: zlomkový oblouk

Speciální kód 00B (11) je určen pro kreslení oblouků, jejichž koncové body nutně neleží na hranicích oktantů. Popis oblouku vyžaduje pět dalších specifikačních bajtů.

11,poč_posun,kon_posun,význ_pol,poloměr,(-)0SC

Hodnoty poč_posun a kon_posun určují, jak daleko od hranice oktantu oblouk začíná, respektive končí. Hodnota význ_pol představuje nejvýznamnějších osm bitů poloměru; pokud není poloměr větší než 255 jednotek, významný poloměr bude 0. Vynásobte hodnotu význ_pol 256 a sečtením této hodnoty s hodnotou poloměr vytvoříte poloměr oblouku větší než 255. Hodnoty poloměr a poslední bajt mají stejný význam jako u kódu 00A (osminový oblouk).

Číslo poč_posun dostanete tak, že vypočítáte rozdíl (ve stupních) mezi hranicí oktantu (tj. násobkem 45 stupňů) a počátkem oblouku. Tento rozdíl vynásobíte 256 a vydělíte 45. Pokud oblouk začíná právě na hranici oktantu, hodnota poč_posun je 0.

Kon_posun se vypočítá stejným způsobem – použijete rozdíl mezi hranicí posledního protnutého oktantu a konce oblouku. Pokud oblouk končí na hranici oktantu, je kon_posun 0.

Například oblouk s poloměrem 3 začínající na 55 stupních a končící na 95 stupních se kóduje následovně:

11,(56,28,0,3,012)

Zde je vysvětlení:

poč_posun= 56 protože ((55 – 45) * 256 / 45) = 56

kon_posun= 28 protože ((95 – 90) * 256 / 45) = 28

význ_pol= 0protože (poloměr < 255)

poloměr= 3

počáteční oktant= 1protože oblouk začíná v oktantu 45 stupňů

koncový oktant = 2 protože oblouk končí v 90stupňovém oktantu

Kódy 00C a 00D: oblouky s vydutím

Speciální kódy 00C a 00D (12 a 13) jsou dalším mechanismem vkládání oblouků do definic tvarů. Podobají se kódům 8 a 9 tím, že také definují posun o X,Y. Kódy 00C a 00D kreslí oblouk pomocí faktoru vyboulení u vektoru posunutí. Kód 00C kreslí jeden oblouk, zatímco kód 00D kreslí navazující sekvenci oblouků (oblouková křivka) až do ukončení posunem (0,0).

Kód 00C musí být následován třemi bajty popisující oblouk:

0C,posun-X,posun-Y,vyboulení

Hodnoty posunu X a Y a hodnota vyboulení se mohou pohybovat od -127 do +127. Jestliže úsečkový segment určený posunutím má délku D a kolmá vzdálenost od středového bodu tohoto segmentu má výšku H, velikost vyboulení je ((2 * H / D) * 127). Pokud oblouk z aktuálního umístění do nového umístění je veden po směru pohybu hodinových ručiček, znaménko je záporné.