Reverse traversing taxonomy based on term_id

Thanks to @ialocin in his comment above, I took his recommendation and adapted it to fit my needs. Traversing the taxonomy hierarchy from the bottom up is actually relatively simple if you understand how WordPress does this from the top down.

function origin_trail_ancestor($cat_id = 0, $link = false, $trail = false) {

    global $wp_query;

    $anchor = "<a href=\"%s\">%s</a>";
    $html="";

    $descendant = get_term_by('id', $cat_id, 'taxonomy');
    $descendant_id = $descendant->term_id;

    $ancestors = get_ancestors($cat_id, 'taxonomy');
    $ancestors = array_reverse($ancestors);

    $origin_ancestor = get_term_by('id', $ancestors[0], 'taxonomy');
    $origin_ancestor_id = $origin_ancestor->term_id;

    $ac = count($ancestors);

    $c = 1;

    if ($trail == false) {
        $origin_ancestor_term = get_term_by('id', $origin_ancestor_id, 'taxonomy');
        $origin_ancestor_link = get_term_link($origin_ancestor_term->slug, $origin_ancestor_term->taxonomy);

        if ($link == true) {
            $html .= sprintf($anchor, $origin_ancestor_link, $origin_ancestor->name);
        }
    }
    else {

        foreach ($ancestors as $ancestor) {
            $ancestor_term = get_term_by('id', $ancestor, 'taxonomy');
            $ancestor_link = get_term_link($ancestor_term->slug, $ancestor_term->taxonomy);

            if ($c++ == 1) {
                $html .= '';
            }
            else if ($c++ != 1 || $c++ != $ac) {
                $html .= "https://wordpress.stackexchange.com/";
            }

            if ($link == true) {
                $html .= sprintf($anchor, $ancestor_link, $ancestor_term->name);
            }
        }

        $descendant_term = get_term_by('id', $descendant_id, 'taxonomy');
        $descendant_link = get_term_link( $descendant_term->slug, $descendant_term->taxonomy );

        $html .= "https://wordpress.stackexchange.com/";

        $anchor = "<strong>%s</strong>";

        if ($link == true) {
            $html .= sprintf($anchor, $descendant_term->name);
        }
    }

    return $html;
}

Which can then be used to do something like:

$breadcrumb = sprintf('<strong>You are here:</strong> %s / %s', '<a href="' . site_url('/suppliers/') . '">All Suppliers</a>', origin_trail_ancestor($main_listing_id, true, true));

Where $main_listing_id is the id of the current taxonomy ID the user is browsing and you would want to traverse back from.

Thanks bud.