படிமம்:Sphere inversion.png
மற்ற மொழிகளில் ஆதரிக்கப்படாத பக்க உள்ளடக்கம்.
கட்டற்ற கலைக்களஞ்சியமான விக்கிப்பீடியாவில் இருந்து.
இந்த முன்னோட்டத்தின் அளவு: 704 × 600 படப்புள்ளிகள் . மற்ற பிரிதிறன்கள்: 282 × 240 படப்புள்ளிகள் | 563 × 480 படப்புள்ளிகள் | 880 × 750 படப்புள்ளிகள் .
மூலக்கோப்பு (880 × 750 படவணுக்கள், கோப்பின் அளவு: 389 KB, MIME வகை: image/png)
இது விக்கிமீடியா பொதுக்கோப்பகத்தில் இருக்கும் ஒரு கோப்பாகும். இக்கோப்பைக் குறித்து அங்கே காணப்படும் படிம விளக்கப் பக்கத்தை இங்கே கீழே காணலாம்.
|
உள்ளடக்கம்
சுருக்கம்
விளக்கம்Sphere inversion.png |
English: Inversion in a sphere example: inversion of a cylinder passing through the sphere. |
நாள் | |
மூலம் | சொந்த முயற்சி |
ஆசிரியர் | Rocchini |
அனுமதி
இந்த ஆக்கத்தின் காப்புரிமையாளரான நான் இதனைப் பின்வரும் உரிமத்தின் கீழ் வெளியிடுகின்றேன்:
This file is licensed under the Creative Commons Attribution 3.0 Unported license.
- நீங்கள் சுதந்திரமாக:
- பகிர்ந்து கொள்ள – வேலையை நகலெடுக்க, விநியோகிக்க மற்றும் அனுப்ப
- மீண்டும் கலக்க – வேலைக்கு பழகிக்கொள்ள.
- கீழ்க்காணும் விதிகளுக்கு ஏற்ப,
- பண்புக்கூறுகள் – நீங்கள் பொருத்தமான உரிமையை வழங்க வேண்டும், உரிமத்திற்கான இணைப்பை வழங்க வேண்டும் மற்றும் மாற்றங்கள் செய்யப்பட்டிருந்தால் குறிப்பிட வேண்டும். நீங்கள் ஏற்புடைய எந்த முறையிலும் அவ்வாறு செய்யலாம், ஆனால் எந்த வகையிலும் உரிமதாரர் உங்களை அல்லது உங்கள் பயன்பாட்டிற்கு ஒப்புதல் அளிக்கும் படி பரிந்துரைக்க கூடாது.
Source Code
Very raw C++ source code generating VRML:
/* Sphere Inversion sample generator (VRML 1.0)
(C)2012 Claudio Rocchini */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
const double PI = 3.1415926535897932384626433832795;
class point3 {
public:
double x,y,z;
point3() {}
point3( double nx, double ny, double nz ): x(nx),y(ny),z(nz) {}
};
double norm( const point3 & p ) {
return sqrt(p.x*p.x + p.y*p.y + p.z*p.z);
}
point3 operator+ ( const point3 & a, const point3 & b ) {
return point3( a.x+b.x, a.y+b.y, a.z+b.z );
}
point3 operator- ( const point3 & a, const point3 & b ) {
return point3( a.x-b.x, a.y-b.y, a.z-b.z );
}
point3 operator* ( const point3 & a, double s ) {
return point3( a.x*s, a.y*s, a.z*s );
}
point3 inversion( const point3 & CS, double RS, const point3 & p ) {
point3 d = p-CS;
double dp = norm(d);
double k = (RS*RS)/(dp*dp);
return CS + d*k;
}
int main() {
const double GS = 0.1; // global scale
point3 CS(0,0,0); double RS = 100; // sphere center and radius
point3 CC(0,0,0); point3 AC(0,1,0); // cylinder "center" and axis
point3 A1(1,0,0); point3 A2(0,0,1); // cylinder hortobase
double RC = 50; double HC = 1600; // cyinder radius and height
FILE * fo = fopen("sphereinv.wrl","w");
fprintf(fo,"#VRML V1.0 ascii\n");
fprintf(fo,
"Separator {\n"
" Material {\n"
" ambientColor 0.2 0.2 0.2\n diffuseColor 0.4 0.9 0.2\n"
" specularColor 0.3 0.3 0.3\n emissiveColor 0 0 0\n"
" shininess 0.4\n transparency 0.5\n"
" }\n"
" Translation { translation %g %g %g }\n"
" Sphere { radius %g }\n"
"}\n"
,CS.x*GS,CS.y*GS,CS.z*GS,RS*GS
);
fprintf(fo,"Coordinate3 {\n""point [\n");
const int N = 32;
const int M = 256;
int i,j;
for(i=0;i<N;++i)
for(j=0;j<M;++j)
{
double p1 = 2*PI*i/N; // 1st parameter
double c1 = cos(p1)*RC;
double s1 = sin(p1)*RC;
double p2 = -HC/2 + HC*j/M; // 2nd parameter
point3 p = CC + A1*c1 + A2*s1 + AC*p2;
fprintf(fo,"%g %g %g,\n",p.x*GS,p.y*GS,p.z*GS);
point3 ip = inversion(CS,RS,p);
fprintf(fo,"%g %g %g,\n",ip.x*GS,ip.y*GS,ip.z*GS);
}
fprintf(fo,"]\n}\n");
fprintf(fo,"Separator {\n");
fprintf(fo,
" Material {\n"
" ambientColor 0 0 0\n diffuseColor 0 0 0\n"
" specularColor 0 0 0\n emissiveColor 0 0 0.8\n"
" shininess 0.0\n transparency 0.0\n"
" }\n"
);
fprintf(fo,"IndexedLineSet {\ncoordIndex [\n");
for(i=0;i<N;++i) for(j=0;j<M-1;++j) fprintf(fo,"%d,%d,-1,\n",(j+i*M)*2,((j+1)+i*M)*2);
for(j=0;j<M;++j) for(i=0;i<N;++i) fprintf(fo,"%d,%d,-1,\n",(j+i*M)*2,(j+((i+1)%N)*M)*2);
fprintf(fo,"]\n}\n}\nSeparator {\n");
fprintf(fo,
" Material {\n"
" ambientColor 0 0 0\n diffuseColor 0 0 0\n"
" specularColor 0 0 0\n emissiveColor 0.8 0 0\n"
" shininess 0.0\n transparency 0.0\n"
" }\n"
);
fprintf(fo, "IndexedLineSet {\n coordIndex [\n");
for(i=0;i<N;++i) for(j=0;j<M;++j) fprintf(fo,"%d,%d,-1,\n",(j+i*M)*2+1,((j+1)%M+i*M)*2+1);
for(j=0;j<M;++j) for(i=0;i<N;++i) fprintf(fo,"%d,%d,-1,\n",(j+i*M)*2+1,(j+((i+1)%N)*M)*2+1);
fprintf(fo, "]\n}\n}\n");
fclose(fo);
return 0;
}
Credits
VRML rendered by Cortona3D Viewer
Items portrayed in this file
depicts ஆங்கிலம்
some value
copyright status ஆங்கிலம்
copyrighted ஆங்கிலம்
29 மே 2012
source of file ஆங்கிலம்
original creation by uploader ஆங்கிலம்
கோப்பின் வரலாறு
குறித்த நேரத்தில் இருந்த படிமத்தைப் பார்க்க அந்நேரத்தின் மீது சொடுக்கவும்.
நாள்/நேரம் | நகம் அளவு சிறுபடம் | அளவுகள் | பயனர் | கருத்து | |
---|---|---|---|---|---|
தற்போதைய | 12:00, 29 மே 2012 | 880 × 750 (389 KB) | Rocchini |
கோப்பு பயன்பாடு
பின்வரும் பக்க இணைப்புகள் இப் படிமத்துக்கு இணைக்கபட்டுள்ளது(ளன):
கோப்பின் முழுமையான பயன்பாடு
கீழ்கண்ட மற்ற விக்கிகள் இந்த கோப்பை பயன்படுத்துகின்றன:
- en.wikipedia.org-திட்டத்தில் இதன் பயன்பாடு
- ru.wikipedia.org-திட்டத்தில் இதன் பயன்பாடு
"https://ta.wikipedia.org/wiki/படிமம்:Sphere_inversion.png" இலிருந்து மீள்விக்கப்பட்டது