Random Chitchat 2012-2016
(01-17-2013, 03:47 AM)xoft Wrote: I now need to do a "distance fro a point to a line" and I'm kinda rusty. Shame on me, really.

First dot the point vector with the line direction, this gives you a scalar, then multiply that scalar with the normalized line direction to get the projected point.

Code:
Global point pos: P
Line point 1: L1
Line point 2: L2

Projected point: pP = dot( P - (L2-L1), normalizecpy( L2-L1 ) ) * normalizecpy( L2-L1 )
Distance = length( pP - P )

At least I THINK that's how it went Sad I suck at vector math
Thanks given by:
Yeah, but I mean line as only between two points, so it's either the distance to the straight line, or to the edge points, whichever is closer. Not to mention I need to interpolate a few parameters based on the projected point's position on the line segment... I need to draw this on a paper, which is kinda tricky now, normally one doesn't bring a lot of paper to a vacation travelTongue Especially when backpacking.

STR, yeah, the gens branch isn't meant to be in top condition and may not compile; I have had already some more changes when I was committing it, so it might be uncompilable as it is in svn. It's more or less just a backup, so that I don't lose the work if, god forbid, my laptop dies.
Thanks given by:
Gens branch in rev 1154 compiles fine for me, what error message are you getting?
Note that sometimes VS gets confused if you switch to a different branch, you need to rebuild the whole solution.
Thanks given by:
Added yet another generator in rev 1155; still work in progress, still it generates only height and only very crude. Not worth checking out, really. On the positive side, though, I think it could be integrated later into the Composable generator scheme, simply as a height generator for Extreme hills.
Thanks given by:
it doesn't compile in release mode. with a .bat file i made a log:
Code:
Microsoft (R) Visual C++ Project Builder - Command Line Version 9.00.30729
Copyright (C) Microsoft Corporation. All rights reserved.

vcbuild.exe : warning VCBLD6002: invalid option /build specified.  The option was ignored.
Build started: Project: zlib, Configuration: Release|Win32
zlib - up-to-date
Build started: Project: JsonCpp, Configuration: Release|Win32
JsonCpp - up-to-date
Build started: Project: Lua, Configuration: Release|Win32
Lua - up-to-date
Build started: Project: ToLua, Configuration: Release|Win32
ToLua - up-to-date
Build started: Project: WebServer, Configuration: Release|Win32
WebServer - up-to-date
Skipped building project G:\MCServer\Branches\gens\VC2008\Squirrel3.vcproj for solution configuration RELEASE|WIN32. This project is excluded from build for this solution configuration.
Build started: Project: CryptoPP, Configuration: Release|Win32
CryptoPP - up-to-date
Build started: Project: MCServer, Configuration: Release|Win32
Compiling...
RoughHillsGenerator2.cpp
..\source\Generating\RoughHillsGenerator2.cpp(414) : error C2039: 'ExportAsSVG' : is not a member of 'cRoughHillsGenerator2::cHill'
        ..\source\Generating\RoughHillsGenerator2.cpp(37) : see declaration of 'cRoughHillsGenerator2::cHill'
..\source\Generating\RoughHillsGenerator2.cpp(415) : error C2270: 'ExportAsSVG' : modifiers not allowed on nonmember functions
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2653: 'cLines' : is not a class or namespace name
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'const_iterator' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2146: syntax error : missing ';' before identifier 'itr'
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'm_Lines' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2228: left of '.begin' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'end' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'm_Lines' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2228: left of '.end' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2143: syntax error : missing ')' before '++'
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2059: syntax error : ';'
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(418) : error C2059: syntax error : ')'
..\source\Generating\RoughHillsGenerator2.cpp(419) : error C2143: syntax error : missing ';' before '{'
..\source\Generating\RoughHillsGenerator2.cpp(421) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(421) : error C2227: left of '->m_X1' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(421) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(422) : error C2227: left of '->m_Z1' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(423) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(423) : error C2227: left of '->m_X2' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(423) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(424) : error C2227: left of '->m_Z2' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator2.cpp(429) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(429) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(429) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(430) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(432) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(432) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(432) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator2.cpp(432) : error C2065: 'm_BlockZ' : undeclared identifier
RoughHillsGenerator.cpp
..\source\Generating\RoughHillsGenerator.cpp(420) : error C2039: 'ExportAsSVG' : is not a member of 'cRoughHillsGenerator::cHill'
        ..\source\Generating\RoughHillsGenerator.cpp(33) : see declaration of 'cRoughHillsGenerator::cHill'
..\source\Generating\RoughHillsGenerator.cpp(421) : error C2270: 'ExportAsSVG' : modifiers not allowed on nonmember functions
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2653: 'cPoints' : is not a class or namespace name
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'const_iterator' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2146: syntax error : missing ';' before identifier 'itr'
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'm_Points' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2228: left of '.begin' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'end' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'm_Points' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2228: left of '.end' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2143: syntax error : missing ')' before '++'
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2059: syntax error : ';'
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(425) : error C2059: syntax error : ')'
..\source\Generating\RoughHillsGenerator.cpp(426) : error C2143: syntax error : missing ';' before '{'
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2227: left of '->m_Y' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2227: left of '->m_X' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2227: left of '->m_Z' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2227: left of '->m_X' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(428) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(429) : error C2227: left of '->m_Z' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2227: left of '->m_Y' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2227: left of '->m_X' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2227: left of '->m_Z' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2227: left of '->m_X' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(431) : error C2227: left of '->m_Z' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(450) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(450) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(450) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(451) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(453) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(453) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(453) : error C2065: 'm_BlockX' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(453) : error C2065: 'm_BlockZ' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(463) : error C2039: 'ExportAsTIN' : is not a member of 'cRoughHillsGenerator::cHill'
        ..\source\Generating\RoughHillsGenerator.cpp(33) : see declaration of 'cRoughHillsGenerator::cHill'
..\source\Generating\RoughHillsGenerator.cpp(464) : error C2270: 'ExportAsTIN' : modifiers not allowed on nonmember functions
..\source\Generating\RoughHillsGenerator.cpp(470) : error C2065: 'm_Points' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(470) : error C2228: left of '.size' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2653: 'cPoints' : is not a class or namespace name
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'const_iterator' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2146: syntax error : missing ';' before identifier 'itr'
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'm_Points' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2228: left of '.begin' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'm_Points' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2228: left of '.end' must have class/struct/union
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2143: syntax error : missing ')' before '++'
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2059: syntax error : ';'
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(471) : error C2059: syntax error : ')'
..\source\Generating\RoughHillsGenerator.cpp(472) : error C2143: syntax error : missing ';' before '{'
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2227: left of '->m_X' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2227: left of '->m_Z' must point to class/struct/union/generic type
        type is ''unknown-type''
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2065: 'itr' : undeclared identifier
..\source\Generating\RoughHillsGenerator.cpp(473) : error C2227: left of '->m_Y' must point to class/struct/union/generic type
        type is ''unknown-type''
Build log was saved at "file://g:\MCServer\Branches\gens\VC2008\Release\BuildLog.htm"
MCServer - 102 error(s), 0 warning(s)

Build complete: 6 Projects succeeded, 1 Projects failed, 1 Projects skipped
Thanks given by:
Fixed.
Thanks given by:
The RoughHillsGenerator isn't going as good as I hoped for, I'm feeling a bit like giving it up altogether. I cannot make the hills any other shapes than "rooftops". If I try any kind of rounding, it produces funky shapes when interpolating:
   
Thanks given by:
Looks good for teletubby landscapeBig Grin
Thanks given by: Taugeshtu
Trying to finish Trady. Currently it needs tiny bit of love with "no chest, correct sign" case and not-creating/deleting shop data in case of chest/sign being broken.
Also, awaiting for this to be fixed
Thanks given by:
One more day in new zealand, then two more days in south korea. And then finally back home. Smile
Thanks given by:




Users browsing this thread: 53 Guest(s)