コード例 #1
0
ファイル: vector.c プロジェクト: hehe3301/physics-sim
Vector vectorMinus(Vector pVectorA, Vector pVectorB) {
    Vector rtnVector = vectorNew();
    rtnVector.x = pVectorA.x - pVectorB.x;
    rtnVector.y = pVectorA.y - pVectorB.y;
    rtnVector.z = pVectorA.z - pVectorB.z;
    return rtnVector;
}
コード例 #2
0
ファイル: vector.c プロジェクト: hehe3301/physics-sim
Vector vectorScale(Vector pVectorA, double pDoubleA) {
    Vector rtnVector = vectorNew();
    rtnVector.x = pVectorA.x*pDoubleA;
    rtnVector.y = pVectorA.y*pDoubleA;
    rtnVector.z = pVectorA.z*pDoubleA;
    return rtnVector;
}
コード例 #3
0
ファイル: vector.c プロジェクト: hehe3301/physics-sim
Vector vectorNew(double pDoubleA, double pDoubleB, double pDoubleC) {
    Vector rtnVector = vectorNew();
    rtnVector.x = pDoubleA;
    rtnVector.y = pDoubleB;
    rtnVector.z = pDoubleC;
    return rtnVector;
}
コード例 #4
0
ファイル: vector.c プロジェクト: hehe3301/physics-sim
Vector vectorAdd(Vector pVectorA, Vector pVectorB) {
    Vector rtnVector = vectorNew();
    rtnVector.x = pVectorA.x + pVectorB.x;
    rtnVector.y = pVectorA.y + pVectorB.y;
    rtnVector.z = pVectorA.z + pVectorB.z;
    return rtnVector;
}
コード例 #5
0
ファイル: vector.c プロジェクト: hehe3301/physics-sim
Vector vectorNew(Vector pVectorA) {
    Vector rtnVector = vectorNew();
    rtnVector.x = pVectorA.x;
    rtnVector.y = pVectorA.y;
    rtnVector.z = pVectorA.z;
    return rtnVector;
}
コード例 #6
0
ファイル: vector.c プロジェクト: snyderdan/PyVector
DLLEX Vector *crossProduct(Vector *a, Vector *b) { // vector product
	
	double components[3];
	
	// Use matrix method in order to compute the components of cross product
	components[2] = (a->components)[0]*(b->components)[1] - (a->components)[1]*(b->components)[0];
	components[0] = (a->components)[1]*(b->components)[2] - (a->components)[2]*(b->components)[1];
	components[1] = (a->components)[2]*(b->components)[0] - (a->components)[0]*(b->components)[2];
	
	return vectorNew(components, 3); // Return new vector using calculated components
}
コード例 #7
0
ファイル: vector.c プロジェクト: snyderdan/PyVector
void main() {
	int i;
	int start;
	double c1[3] = {22.5, 12.8, 80.2};
	double c2[3] = {81.0, 5.0, 56.1};
	Vector *a = vectorNew(c1, 3);
	Vector *b = vectorNew(c2, 3);
	start = clock();
	for (i=0; i<100000; i++) {
		vectorAdd(a, b);
		vectorSub(a, b);
		vectorCompare(a, b);
		angle(a, b);
		vectorLength(a);
		vectorLength(b);
		dotProduct(a, b);
		crossProduct(a, b);
	}
	printf("%f ", (float)(clock()-start)/CLOCKS_PER_SEC);
	getchar();
}
コード例 #8
0
ファイル: mySmallTreeLib.c プロジェクト: netscruff/ceiba
node nexus2rootNode(char *buffer)

// As of now, we configure to read from a file throughout...[but see the following note if you want to change]

// Depending on how nexusLexer.l is configured, this routine either invokes a parser on STDIN or invokes a parser
// based on the string pointed to by buffer. STDIN or string must contain a valid nexus file with a tree block and one
// tree. It is parsed and a pointer to the root node of a tree structure is returned.

{
extern char* myinputptr;
translVec=vectorNew(100);
myinputptr=buffer;
yyparse();
return gRootNode;
}
コード例 #9
0
ファイル: vector.c プロジェクト: snyderdan/PyVector
DLLEX Vector *vectorCopy(Vector *a) {
	
	return vectorNew(a->components, a->demensions); // Just create a new vector, as it copies the components for us
	
}