HTML

Despina

Sugárkövetés (raytracing) megvalósítása c++ nyelvben.

Friss topikok

  • tormanator: Az internet nagy hátránya, hogy még szabadidődben is beleszólnak abba, amit csinálsz. float oké, ... (2011.09.03. 19:26) 3D-s vektor osztály
  • tormanator: Látványosan elakadtál, akkor majd én folytatom. sugarkovetes.blog.hu/ (2011.09.03. 14:34) Metszéspontszámítás 1
  • sirpalee: Ne írj saját bmp mentőt. 1. OIIO - win alá macerás fordítani de megéri 2. devIL - egyszerű, fapad... (2010.12.08. 17:31) bmp fájlba mentés

Linkblog

global_math

2010.12.02. 19:12 despina

Szükség van néhány matematikai fogalom megvalósítására. Egyenlőre a legfontosabb ilyen a pont. A tér egy pontját le lehet írni 3 koordinátájával. Itt nem érzem szükségét műveletek megvalósítására. A pont nyelvi szinten csak egy struktúra. Túlterheltem a stream operátorokat az egyszerűbb kezelhetőség kedvéért.

// global_math.h
struct point
{
    point(double X = 0, double Y = 0, double Z = 0);
    point(const point& p);

    friend std::ostream& operator<<(std::ostream& out, point p);
    friend std::istream& operator>>(std::istream& is, point& p);
    point& operator=(const point &new_p);
    double x,y,z;
};
// global_math.cpp
point::point(double X, double Y, double Z)
{
    x = X;
    y = Y;
    z = Z;
}

point::point(const point &p)
{
    x = p.x;
    y = p.y;
    z = p.z;
}

std::ostream& operator<<(std::ostream& out, point p)
{
    out << p.x << " " << p.y << " " << p.z;
    return out;
}
std::istream& operator>>(std::istream& is, point& p)
{
    double a = 0;
    double b = 0;
    double c = 0;
    
    char ch = 0;

    is >> a >> ch;
    if (ch == ',') is >> b >> ch;
    if (ch == ',') is >> c;
    
    if (is) p = point(a,b,c);

    return is;
}
point& point::operator=(const point &new_p)
{
    if (this != &new_p)
    {
        x = new_p.x;
        y = new_p.y;
        z = new_p.z;
    }
    return *this;
}

Szólj hozzá!

A bejegyzés trackback címe:

https://despina.blog.hu/api/trackback/id/tr452489046

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása