示例#1
0
/**
 * @brief CutArc cut arc into two arcs.
 * @param length length first arc.
 * @param arc1 first arc.
 * @param arc2 second arc.
 * @return point cutting
 */
QPointF VArc::CutArc(const qreal &length, VArc &arc1, VArc &arc2) const
{
    //Always need return two arcs, so we must correct wrong length.
    qreal len = 0;
    if (length < this->GetLength()*0.02)
    {
        len = this->GetLength()*0.02;
    }
    else if ( length > this->GetLength()*0.98)
    {
        len = this->GetLength()*0.98;
    }
    else
    {
        len = length;
    }

    qreal n = (len*180)/(M_PI*d->radius);
    QLineF line(GetCenter().toQPointF(), GetP1());
    line.setAngle(line.angle()+n);

    arc1 = VArc (d->center, d->radius, d->formulaRadius, d->f1, d->formulaF1, line.angle(),
                 QString().setNum(line.angle()), getIdObject(), getMode());

    arc2 = VArc (d->center, d->radius, d->formulaRadius, line.angle(), QString().setNum(line.angle()), d->f2,
                 d->formulaF2, getIdObject(), getMode());
    return line.p2();
}
示例#2
0
文件: hash.c 项目: Alien777/cdnp2psim
static void removeEvictedItensHashTable(THashTable* hashTable, unsigned int idPeer, void *vListDisposed){
	TListObject *listDisposed = vListDisposed;
	TItemHashTable* item;
	TObject *disposed;
	TIdObject idVideo;

	item = createItemHashTable();

	TIteratorListObject *it = createIteratorListObject(listDisposed);

	it->reset(it); disposed = it->current(it);

	while(disposed){

		getIdObject(disposed, idVideo);
		//
		setItemHashTable(item, idPeer, NULL, idVideo, NULL);

		removeItemHashTable(hashTable, item);

		it->next(it); disposed = it->current(it);
	}
	item->dispose(item);

	it->ufree(it);
}